博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java多线程设计模式(2) 线程的同步
阅读量:4117 次
发布时间:2019-05-25

本文共 584 字,大约阅读时间需要 1 分钟。

<script language="javascript" type="text/javascript"> document.title="java多线程设计模式(2) 线程的同步 - "+document.title </script>

由于同一进程内的多个线程共享内存空间,在Java中,就是共享实例,当多个线程试图同时修改某个实例的内容时,就会造成冲突,因此,线程必须实现共享互斥,使多线程同步。

最简单的同步是将一个方法标记为synchronized,对同一个实例来说,任一时刻只能有一个synchronized方法在执行。当一个方法正在执行某个synchronized方法时,其他线程如果想要执行这个实例的任意一个synchronized方法,都必须等待当前执行synchronized方法的线程退出此方法后,才能依次执行。

但是,非synchronized方法不受影响,不管当前有没有执行synchronized方法,非synchronized方法都可以被多个线程同时执行。

此外,必须注意,只有同一实例的synchronized方法同一时间只能被一个线程执行,不同实例的synchronized方法是可以并发的。例如,class A定义了synchronized方法sync(),则不同实例a1.sync()和a2.sync()可以同时由两个线程来执行。

转载地址:http://sgdpi.baihongyu.com/

你可能感兴趣的文章
深入理解PHP原理之Opcodes
查看>>
深入理解PHP原理之变量(Variables inside PHP)
查看>>
深入理解PHP原理之变量作用域(Scope in PHP)
查看>>
深入理解PHP原理之变量分离/引用(Variables Separation)
查看>>
深入理解PHP内存管理之谁动了我的内存
查看>>
ubuntu 14.04 lamp 安装
查看>>
php和javascript中Json操作总结
查看>>
Linux 下安装 Memcached 和 PHP 开启 Memcached 扩展
查看>>
php模块memcache和memcached区别分析
查看>>
PHP模块 Memcached功能多于Memcache
查看>>
Memcached命令使用
查看>>
Firebug教程
查看>>
透视WebMVC
查看>>
ubuntu14.04 安装redis
查看>>
互联网协议入门(一)
查看>>
互联网协议入门(二)
查看>>
http协议学习系列
查看>>
redis 命令
查看>>
Redis配置文件redis.conf参数说明
查看>>
用 Xdebug 修正 PHP 应用程序中的错误
查看>>