java在子執行緒與主執行緒傳遞資料(回撥函式)
阿新 • • 發佈:2018-12-20
預習知識點: 什麼是回撥函式? 下面是知乎大神的回答,簡直不能再精闢
程式碼:
package kun.thread; public class THread { static C c=new C(); //flag用來標誌子執行緒執行結束 static boolean flag=false; public static void main(String []arg) { c.setvalue(12); System.out.println("子執行緒執行之前value的值是:"+c.getvalue()); System.out.println("執行子執行緒"); Thread mythread = new MyThread(c); mythread.start(); //等待子執行緒執行結束 while(!flag); System.out.println("子執行緒執行之後value的值是:"+c.getvalue()); } public static void callback() { System.out.println("子執行緒執行結束"); flag=true; } } class C { private int value=0; public int getvalue() { return value; } public void setvalue(int v) { this.value=v; } } class MyThread extends Thread { public MyThread(C cc) { this.cc=cc; } private C cc; @Override public void run() { cc.setvalue(20); THread.callback();//很像C#的委託和事件 } }