JAVA Synchronized 修饰代码块;

来源:互联网 发布:类似维棠软件 编辑:程序博客网 时间:2024/06/03 12:42
Synchronized 修饰代码块;
格式:
Synchronized(类对象名 aa)
//字符串也是一个String对象
{
同步代码块//3行。
}
功能是:
Synchronzied(类对象名 aa)的含义是:
判断aa是否已经被其他线程霸占,如果发现被其他线程霸占,那么该线程会进入等待中(就绪状态)。如果发现没有被其他线程霸占,则当前线程就会霸占aa线程,然后执行同步代码块,这个过程调皮的CPU会切换到其他线程,可是要让其他线程执行的话,必须要霸占aa线程,可是aa已经被霸占了。所以不能被霸占了。除非霸占线程的线程执行完后代码块后,会自动释放该线程。那么其他就绪的线程就会在同一起跑线上一起再次去霸占CPU.CPU也会再次选择其中的一个线程去执行。
最终导致的结果是:
一个线程正在被操作的时候,将不允许其他线程去操作该资源,级一次只允许执行一个线程。
互斥操作的控制,Java提供了关键字synchronized进行的。synchronized可以修饰方法,也可以修饰代码段。其代表的含义就是:进入他修饰的这段代码内的线程必须先去获取一个特定对象的锁定标示,并且虚拟机保证这个标示一次只能被一条线程拥有.
0 0
原创粉丝点击