当前位置: 技术问答>java相关
子线程里如何调用主线程中的方法?
来源: 互联网 发布时间:2015-03-23
本文导语: 我在程序里加了一个SOCKET接收线程,当收到特定消息时要调用主线程中的刷新方法,怎么在子线程中调用? | class Father implemnet runnable{ public void run(){ Son son = new son(t...
我在程序里加了一个SOCKET接收线程,当收到特定消息时要调用主线程中的刷新方法,怎么在子线程中调用?
|
class Father implemnet runnable{
public void run(){
Son son = new son(this);
Thread sonThread = new Thread(son);
Thread.start();
}
private void refresh(){
}
};
class Son implement Runnable{
private Father father;
public Son(Father father){
this.father = father;
}
public void run(){
father.refresh();
}
}
public void run(){
Son son = new son(this);
Thread sonThread = new Thread(son);
Thread.start();
}
private void refresh(){
}
};
class Son implement Runnable{
private Father father;
public Son(Father father){
this.father = father;
}
public void run(){
father.refresh();
}
}
|
class MyTheard extends Runnable
{
private JFrame pFrame;
public MyTheard(JFrame parentFrame)
{
this.pFrame=parentFrame;
}
//下面可以对pFrame进行操作
public void run()
{
}
}
在主窗口中使用MyTheard开新的线程
MyTheard mytheard=new MyTheard(this);
{
private JFrame pFrame;
public MyTheard(JFrame parentFrame)
{
this.pFrame=parentFrame;
}
//下面可以对pFrame进行操作
public void run()
{
}
}
在主窗口中使用MyTheard开新的线程
MyTheard mytheard=new MyTheard(this);
|
1.把主窗口的指针作为参数发给线程
2.把主窗口的指针作为参数保存在socket类中
3.使用全局变量保存主窗口的指针.
more...
|
Son son = new son(this);
应为Son son = new Son(this);
应为Son son = new Son(this);
|
线程只能通知别的线程执行某个方法,比如用notify()