Java核心内库-线程-线程同步-同步代码块
来源:互联网 发布:linux 改权限命令 编辑:程序博客网 时间:2024/06/06 01:52
线程的不安全问题:当多线程并发访问同一个资源对象的时候,可能出现线程不安全的问题。
解决方案:同步代码块、同步方法、锁机制
同步代码块
语法:
synchronized (同步锁){ //需要同步操作的代码}
同步锁:是一个概念,为了保证每个线程都能正常执行原子操作,Java引入了线程同步机制。
同步监听对象/同步锁/同步监听器/互斥锁
对象的同步锁只是一个概念,可以想象为在对象上标记一个锁。
Java程序允许使用任何对象作为同步监听对象,但是一般我们把当前并发的共同资源作为同步监听对象。
注意:在任何时候,最多允许一个线程拥有同步锁,谁拿到锁就进入代码块,其他的线程只能在外面等着
class Apple1 implements Runnable{ private int num = 50; //苹果总数 @Override public void run() { for (int i=0;i<50;i++){ // 同步代码块 synchronized (this){ // this,表示Apple1对象,该对象属于多线程共享的资源 if (num>0){ System.out.println(Thread.currentThread().getName()+"吃了编号为"+num+"的苹果"); try { Thread.sleep(10); // 此时是为了模拟网络延迟 } catch (InterruptedException e) { e.printStackTrace(); } num--; } } } }}public class Main { public static void main(String[] args){ // 创建三个线程(同学)吃苹果 Apple1 a = new Apple1(); new Thread(a,"小A").start(); new Thread(a,"小B").start(); new Thread(a,"小C").start(); }}
0 0
- Java核心内库-线程-线程同步-同步代码块
- Java核心内库-线程-线程同步-同步方法
- [java]线程--同步代码块
- Java-线程$同步代码块
- 线程同步---同步代码块
- 线程同步 同步代码块
- 线程-同步代码块
- Java核心内库-线程-线程同步-同步锁(Lock)
- java 线程间通信同步代码块
- Java线程:线程的同步-同步块
- Java线程:线程的同步-同步块
- Java线程:线程的同步-同步块
- Java线程:线程的同步-同步块
- Java线程:线程的同步-同步块
- Java线程:线程的同步-同步块
- Java线程:线程的同步-同步块
- Java线程:线程的同步-同步块
- Java线程:线程的同步-同步块
- 两个很有意思的开源项目【tiki】【wikisuite】
- 云计算笔记<六>
- 光网络知识
- Eclipse自定义注释模版
- 如何制作自解压文件
- Java核心内库-线程-线程同步-同步代码块
- 关于popupWindow自上而下动画弹出
- 直接插入排序
- Base64、MD5、DES、AES、RAS加密解密编码解码分析
- JAVA_SE基础——72.自定义线程
- 函数调用的参数传递
- 小孩才考虑对与错,大人只考虑利益与否
- [Android入门]从零构建Android app之天气——6.app图标和欢迎页
- iOS 探讨之 nil Nil NULL NSNull