博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Single Threaded Execution
阅读量:6173 次
发布时间:2019-06-21

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

  hot3.png

                                                                    Single Threaded Execution

    这个设计模式是多线程设计时候最基础的一个准则,对于临界区的值只允许一个线程进行修改。定义临界区还是使用synchronized来定义。(虽然jdk 7出了很多并发包api,但还是先只关注最基础的api 关键字)

//演示public class Main {	public static void main(String args[]){		Gate gate=new Gate();		new UserThread(gate,"chen ","china").start();		new UserThread(gate,"bob","brazil").start();;	}}    public class Gate {	private int counter=0;	private String name="nobady";	private String address="nowhere";	public synchronized void pass(String name,String address){		this.counter++;		this.name=name;		this.address=address;		check();	}		public String toString(){		return "no."+counter+": "+name+","+address;	}	public void check(){		if(name.charAt(0)!=address.charAt(0)){			System.out.println("******broken******"+toString());		}	}    }        public class UserThread extends Thread {	private final Gate gate;		private final String myname;		private final String myaddress;		public UserThread(Gate gate,String name,String address) {		this.gate=gate;		this.myname=name;		this.myaddress=address;	}		public void run(){		System.out.println(myname+" begin");		while(true){			gate.pass(myname, myaddress);		}	}}

    因为定义了临界区,所以不会输出check里面的值。去掉关键字就会出错。

    但是定义临界区,就会使多线程的性能降低。如何减小临界区的范围是一个比较关键的地方。像多个值需要赋值的时候,volatile 关键字是并没有任何作用的。

转载于:https://my.oschina.net/QAAQ/blog/662186

你可能感兴趣的文章
《大数据分析原理与实践》一一2.1 大数据分析模型建立方法
查看>>
《 自动化测试最佳实践:来自全球的经典自动化测试案例解析》一一2.7 测试套件和类型...
查看>>
8月18日云栖精选夜读:阿里视频云最强转码技术揭秘:窄带高清原理解析+用户接入指南...
查看>>
涨姿势:工业物联网与大数据融合的四个重点
查看>>
社会学视角下的大数据方法论及其困境
查看>>
《云计算:原理与范式》一1.7 平台即服务供应商
查看>>
百度成立“百度搜索公司”:固本拓新驱动生态裂变
查看>>
宇宙风暴?才怪!瑞典暗指俄罗斯黑客攻击航空控制系统
查看>>
系统进程管理工具Process Explorer
查看>>
富士通仍执着SPARC架构芯片 将坚持推新
查看>>
易宪容:企业要利用大数据挖掘潜在需求
查看>>
微软声称Win10周年更新为Edge浏览器带来更好电池寿命
查看>>
混合云是企业IT的未来吗?
查看>>
LINE在日本取得成功 但全球化之路还很长
查看>>
红帽云套件新增QuickStart Cloud Installer,加快私有云部署
查看>>
MapXtreme 2005 学习心得 一些问题(八)
查看>>
流量精细化运营时代,营销SaaS之使命——流量掘金
查看>>
雅虎同意出售核心资产
查看>>
Win10大丰收的节奏 微软收编iOS全部150万应用
查看>>
智慧城市要除“城市病” 中兴通讯开辟新增长极
查看>>