易截截图软件、单文件、免安装、纯绿色、仅160KB

java 中synchronized 用法

哪位大侠给详细讲下synchronized 用法?
以及与sleep关系?
还有就是线程调度的关系?
越详细越好。



自己看书去啊。。

synchronized是在对象上加锁,当任务执行到synchronized关键字保护的代码的时候,就先查看锁是否可用,然后获取锁执行代码,释放锁。在多线程的程序中为了保证共享单元的线程安全而存在的,如果你不能使用原子性来替代无锁代码,那么就是用synchronized来保证线程同步。
synchronized的用法:我能想到的就是这几点,所有对象都含有单一的锁,在该对象上调用任何synchronized方法,此对象都被加锁,这种情况下在调用此对象的其他方法是要阻塞的。二是在一个synchronized方法里调用其他的方法是不会释放锁的,等等
在java se5里有了新的锁机制就是显示的调用lock对象来实现锁定和释放,但是它只在去要尝试加锁但有可能加锁失败的情况下才使用,使用它的TryLock方法,此方法还可以设置超时,除此之外建议使用synchronized,因为使用它的代码量更少,而且不容易出错。
在java se5里有了新的sleep版本,如TimeUnit.MILLISECONDS.sleep(1000)。它可以让线程休眠一段时间,个人没觉得它与synchronized有什么特别的关系
线程调度是cpu的事,你可以设置优先级,或者在优先级相同的线程间调用yield()方法来把cup让给其他线程,这些都是不严谨的做法,synchronized只是在保证线程同步。

去 google 上找找有简明的教程,看了就明白~

synchronized是同步,也就是只有一个线程获取该代码段的使用权,直到该线程跳出,然后其他线程才有机会执行。
sleep就是要求该线程睡眠,停止执行,但并不放弃该对象的锁,睡眠时间后,线程就会进入就绪状态,和wait是有区别的。

public class


相关问答:

java编译运行c程序,并显示结果

通过java程序,先编译c程序,如出现错误,提示C程序中的错误,编译成功就运行,显示C的运行结果,最好把C的运行时间和内存等都显示出来

各位大哥大姐帮帮忙,小弟感激不尽!
用java的进程类试试
我给你转 ......

jsp 中乱码的 - Java / Web 开发

我的开发的平台是Myeclipes6.0 + tomcat5.x + mysql
我所有的编码方式都是用的UTF-8 
我只用了Strtus框架
在一个form中如下用的是post的提交方式:
 <form class="form" action=&quo ......

Unable to compile class for JSP - Java / Web 开发

<%@page language="java" contentType="text/html;charset=gb2312" import="java.sql.*"%>
<jsp:useBean id="db" class="wang.connectDB"/>
< ......

在jsp中用session怎么实现购买功能 - Java / Web 开发

我想做够购物车用session 但是不知道怎么获取购买数量 谁有具体的代码吗 希望能割舍

下面是购物车的核心代码 
有了这个 就应该能够做出来吧
Java code:

public void doPost(HttpServletRequest reque ......

JAVA swing 中的按钮相应事件

现在遇到这样一个问题:
  在java 中编写swing程序, 添加按钮jbServerStart,目的是当点击jbServerStart时,程序会自动创建两个与其他终端通信的对象,代码如下:
private Container createButtonPane ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号