多线程很少用,遇到个问题,mark
来源:互联网 发布:arm linux 外设使用 编辑:程序博客网 时间:2024/05/29 09:09
牛客网题目
假设如下代码中,若t1线程在t2线程启动之前已经完成启动。代码的输出是()public static void main(String[]args)throws Exception { final Object obj = new Object(); Thread t1 = new Thread() { public void run() { synchronized (obj) { try { obj.wait(); System.out.println("Thread 1 wake up."); } catch (InterruptedException e) { } } } }; t1.start(); Thread.sleep(1000);//We assume thread 1 must start up within 1 sec. Thread t2 = new Thread() { public void run() { synchronized (obj) { obj.notifyAll(); System.out.println("Thread 2 sent notify."); } } }; t2.start();}
notify()就是对对象锁的唤醒操作。但有一点需要注意的是notify()调用后,并不是马上就释放对象锁的,而是在相应的synchronized(){}语句块执行结束,自动释放锁后,JVM会在wait()对象锁的线程中随机选取一线程,赋予其对象锁,唤醒线程,继续执行。这样就提供了在线程间同步、唤醒的操作。
阅读全文
0 0
- 多线程很少用,遇到个问题,mark
- 遇到gcc编译的2个问题,mark以便查阅
- mark一下遇到的问题
- 多线程遇到的问题
- Mark-遇到的问题2015-0526(intent、fragment)
- 集成tiles3时遇到的问题,mark一下
- [Mark] Spark+Python 初学时遇到的问题
- 以前很少遇到这样的问题。。。就是浏览器无法访问apache下的swf
- crackme遇到个问题
- 多线程遇到的小问题
- 遇到多线程问题,关于MyDownload
- linux 多线程 遇到的问题
- 多线程面试遇到的问题
- 【那些年遇到过的面试题】 40个多线程问题总结
- 1 那些年遇到过的面试题 - 40个多线程问题总结
- 多线程40个问题
- 遇到的第一个问题
- 遇到个ctags的问题
- MySQL基于gtid特性与xtrabackup的数据恢复
- 得到某位的值,0或1
- 多态的理解
- Z-tree实例——复选框
- makefile(一):变量
- 多线程很少用,遇到个问题,mark
- Flask系列教程(1)——认识web
- 前端插件之间面对重复使用规则的兼容转换---$(...).XXX is not a function
- Linux
- 深度学习在自然语言处理的应用 2017-07-07 Jonathan Mugan 关于算法的那些事 在深度学习出现之前,我们书写的文字所包含的意思是通过人为设计的符号和结构传达给计算机的。我在上一篇
- HttpURLConnection
- Linux统计代码行数
- [vscode] markdown_index----可以为你的markdown标题添加序号的插件
- iOS Xcode pch文件的路径配置