Java如何实现方法的阻塞
答案:3 悬赏:80 手机版
解决时间 2021-01-07 08:53
- 提问者网友:容嬷嬷拿针来
- 2021-01-06 16:12
Java如何实现方法的阻塞
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-01-06 17:17
使用 synchronized 关键字
是方法头 使用 synchronized,方法将实现 同步,一次只有一个方法可以使用,当多个进程同时访问时,将只有一个进程可以访问,剩下的进程将等待当前进程结束才能进入。
是方法头 使用 synchronized,方法将实现 同步,一次只有一个方法可以使用,当多个进程同时访问时,将只有一个进程可以访问,剩下的进程将等待当前进程结束才能进入。
全部回答
- 1楼网友:胯下狙击手
- 2021-01-06 19:15
你可以尝试研究下FutureTask类和Callable接口,他们是一种阻塞线程
举个例子:
ReceiveThread rt=new ReceiveThread();
FutureTask task=new FutureTask(rt);
Thread t=new Thread(task);
t.start();
String s=task.get();//阻塞方法,只有当Callable里的call方法运算结束,才会解除阻塞
class ReceiveThread implements Callable{
public String call() throws Exception{
while(....){
........
.......
return String;
}
}
}
那你就写个线程不断监听result这个值不就行了,当监听到的是关闭的值就打印
举个例子:
ReceiveThread rt=new ReceiveThread();
FutureTask
Thread t=new Thread(task);
t.start();
String s=task.get();//阻塞方法,只有当Callable里的call方法运算结束,才会解除阻塞
class ReceiveThread implements Callable
public String call() throws Exception{
while(....){
........
.......
return String;
}
}
}
那你就写个线程不断监听result这个值不就行了,当监听到的是关闭的值就打印
- 2楼网友:迟山
- 2021-01-06 18:22
如果你打算用线程实现的话至少需要两个线程 一个线程一但停止 则操纵另一个线程 然后通过另一个线程唤醒所有线程继续执行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯