Java中线程同步的简单用法
来源:互联网 发布:获取服务器ip和端口号 编辑:程序博客网 时间:2024/04/29 20:30
应用场景:应用程序需要新建若干线程进行事务处理,这些线程处理完毕后,应用程序会进行一些后续的操作。
解决办法:使用Object.wait(),Object.notify()方法。Object.wait()方法会阻断当前线程的执行,直到其他线程调用Object.notify()。
于是可以很快的写出一个示例程序:
public static void main(String[] args) { final Object syncObj = new Object(); Thread thread = new Thread() { public void run() { try { Thread.sleep(3000); synchronized(syncObj) { syncObj.notify(); } } catch (InterruptedException e) { e.printStackTrace(); } } }; thread.start(); synchronized(syncObj) { try { syncObj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("Exit");}
调用wait和notify方法前,一定要用synchronized(syncObj),否则会抛出IllegalMonitorStateException。
有空再写写Concurrence Util里的工具类,简化上面的操作。 .csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }
- Java中线程同步的简单用法
- Java中线程的同步
- Java中线程的同步
- QT中线程及其同步的用法
- Java线程同步--synchronized的用法
- java中线程同步
- java中线程同步
- Java中线程同步
- Java中线程同步
- java线程中线程同步
- 关于Java中线程同步的问题
- java中线程的同步性
- JAVA中线程同步的方法
- JAVA中线程同步的方法
- JAVA中线程同步的方法
- JAVA中线程同步的方法
- JAVA中线程同步的方法
- JAVA中线程同步的方法
- Xen Cloud Platform
- 数组名是常量 常量是不可以被修改的
- linux上视频传输的程序
- JDBC与JNDI的区别
- 情书
- Java中线程同步的简单用法
- 白痴的午夜记叙
- 点击 RedioButton 改变当前的选中状态
- asp.net+Ajax+DataSet动态检索
- J2ME开发平台的搭建
- u-boot启动代码start.S详解
- mfc嵌入Flash的交互
- Hibernate多对多单向关联(2个一对多)
- tomcat非安装方式,添加windows服务启动方式