易截截图软件、单文件、免安装、纯绿色、仅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页面获取session的问题 - Java / Java EE

我在jsp页面存上一个session,本页面还可以取出值来.
但是一刷新,或者打开新的页面就取不出值来了.
奇怪的是,我测试另一个程序时候
在jsp页面存上一个session,本页面可以取出值来,刷新或打开新页面值能取出来了.
......

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

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

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

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

java中的疑问

1  public class BirthDate {
2 private int day;
3 private int month;
4 private int year;
5
6 public BirthDate (){}
7
8 public BirthDate (int d,int m,int y){
9 day = d;
......

java语法问题 - Java / Java EE

import java.io.*;
class FileTest
{
public static void main(String [] args) throws Exception
{

File fDir=new File(File.separator);
String strFile="java源代码测试"+File.separato ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号