多线程学习之一独木桥模式Single Threaded Execution Pattern
2015-10-22 15:20
507 查看
Single Threaded Execution Pattern【独木桥模式】
一:single threaded execution pattern的参与者
--->SharedResource(共享资源)
二:single threaded execution pattern模式什么时候使用
--->多线程程序设计时
--->数据可被多个线程访问的时候
--->共享资源状态可能变化的时候
--->需要确保数据安全性的时候
三:single threaded execution pattern思考
--->synchronized一见到它,势必保护着什么公共资源的数据。保证数据安全,就得所有该保护的地方都得保护。
--->保护公共资源的数据的范围叫临界区,临界区尽可能的小。提高性能。
--->程序设计的时候,一定要防止死锁的发生。主要是同步方法的外部调用顺序,防止交叉调用,多线程时,会发生死锁。
案例:三个人来回通过一扇门,通过时记录该人的姓名和地址。
门类(公共资源)
View Code
一:single threaded execution pattern的参与者
--->SharedResource(共享资源)
二:single threaded execution pattern模式什么时候使用
--->多线程程序设计时
--->数据可被多个线程访问的时候
--->共享资源状态可能变化的时候
--->需要确保数据安全性的时候
三:single threaded execution pattern思考
--->synchronized一见到它,势必保护着什么公共资源的数据。保证数据安全,就得所有该保护的地方都得保护。
--->保护公共资源的数据的范围叫临界区,临界区尽可能的小。提高性能。
--->程序设计的时候,一定要防止死锁的发生。主要是同步方法的外部调用顺序,防止交叉调用,多线程时,会发生死锁。
案例:三个人来回通过一扇门,通过时记录该人的姓名和地址。
门类(公共资源)
/** * */ package com.benxq.thread2; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 测试类 * Created by qucf on 2015年10月22日. */ public class Test { public static void main(String[] args) { //创建一个门 Gate gate=new Gate(); //创建一个线程池 ExecutorService es=Executors.newFixedThreadPool(10); for (int i = 0; i < 10; i++) { es.submit(new UserThread(gate, "Zhansan"+i, "Z地址"+i)); } } }
View Code
相关文章推荐
- ORACLE 过滤重复值SQL语句
- Hibernate 、Hql查询和Criteria查询
- 将图片以二进制数组存入数据库,从数据库中取出转为图片
- 配置Centos 6.5的yum源
- HDU 1171 Big Event in HDU(01背包)
- linux安装flash player
- Chrome 正在等待可用的套字节 问题
- 文本输入框、密码输入框
- 使用curl下载Xcode7.1
- 0917词法分析实验总结
- Dell PowerEdge服务器RAID卡驱动下载
- Tomcat处理HTTP请求源码分析(下)
- Hibernate 、Hql查询和Criteria查询
- ecshop 团购-》调取评论
- MySQL 时间戳(Timestamp)函数
- postgresql 查看系统中的锁信息与锁资源
- Androd layout_weight的真正含义
- python入门1(慕课网)
- BinarySearch
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造