JAVA线程 问题。两个线程都必须在主线程中运行,线程2执行到特定时候开始执行线程1.
答案:3 悬赏:30 手机版
解决时间 2021-11-26 23:15
- 提问者网友:心如荒岛囚我终老
- 2021-11-26 04:40
JAVA线程 问题。两个线程都必须在主线程中运行,线程2执行到特定时候开始执行线程1.
最佳答案
- 五星知识达人网友:玩世
- 2021-11-26 05:30
我不太明白你的意思 我说说我的理解
线程就是使程序并发的 也就是说程序同时运行
你现在要 线程2执行到特定时候开始执行线程1.
那不需要并发 直接写一个顺序运行就可以了嘛
这是我自己的理解 欢迎交流追问就是先让线程2先等待。线程1有一个判断。等线程1判断成功了以后。然后两个再并发执行追答那你直接在2线程里调用线程1不就行了
单从字面意思来 这程序是不会用的wait() 和notify();
因为这2个方法是用来使线程相互协作才会用到,
也就是可能2个线程用到相同的临界资源
还有wait() 方法一般跟while语句一起用
建议你看看java多线程这一块
我也最近刚在学 欢迎交流追问我也是刚学习,在写聊天工具呢。我聊天室线程2主要是客户端从控制台上输入数据给服务器。线程1主要是客户端从服务器接受数据并输出到控制台上。但是。开始我想使用线程1从控制台上输入一些数据给服务器,然后让服务器进行判断,正确的话,然后两个一起执行,如果不让线程2先等待的话,线程1从控制台输入,线程2也要从控制台输入。服务器就分不清楚了。我也想线程1掉用线程2.但还有个主线程啊。。两个线程都要用主线程里面数据追答我可以给你一个我认为可行的方案
你先在线程2中加一个静态变量
例如public static boolean flag = true;
然后在线程2中写
while(flag){
wait();
}
最后在线程1要调用线程2时
线程2.flag = false;
notifyAll();
这样线程2就不会等待了 会直接运行下去
不知道这样行不行 有问题再交流吧
线程就是使程序并发的 也就是说程序同时运行
你现在要 线程2执行到特定时候开始执行线程1.
那不需要并发 直接写一个顺序运行就可以了嘛
这是我自己的理解 欢迎交流追问就是先让线程2先等待。线程1有一个判断。等线程1判断成功了以后。然后两个再并发执行追答那你直接在2线程里调用线程1不就行了
单从字面意思来 这程序是不会用的wait() 和notify();
因为这2个方法是用来使线程相互协作才会用到,
也就是可能2个线程用到相同的临界资源
还有wait() 方法一般跟while语句一起用
建议你看看java多线程这一块
我也最近刚在学 欢迎交流追问我也是刚学习,在写聊天工具呢。我聊天室线程2主要是客户端从控制台上输入数据给服务器。线程1主要是客户端从服务器接受数据并输出到控制台上。但是。开始我想使用线程1从控制台上输入一些数据给服务器,然后让服务器进行判断,正确的话,然后两个一起执行,如果不让线程2先等待的话,线程1从控制台输入,线程2也要从控制台输入。服务器就分不清楚了。我也想线程1掉用线程2.但还有个主线程啊。。两个线程都要用主线程里面数据追答我可以给你一个我认为可行的方案
你先在线程2中加一个静态变量
例如public static boolean flag = true;
然后在线程2中写
while(flag){
wait();
}
最后在线程1要调用线程2时
线程2.flag = false;
notifyAll();
这样线程2就不会等待了 会直接运行下去
不知道这样行不行 有问题再交流吧
全部回答
- 1楼网友:英雄的欲望
- 2021-11-26 07:32
你怎么调用start方法? 线程的开启要用run方法。。。。追问线程运行就是start方法吧。。然后start方法调用的run方法。
- 2楼网友:一把行者刀
- 2021-11-26 05:56
你好,建议你先查看一下API,Object中的wait和notify的使用方法。二者必须出现在同一个方法内,你居然是在两个类中,那怎么能通信呢?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯