编程开发之--java多线程学习总结(6)
5、测试
package com.lfy.ThreadsSynchronize;
public class Test {
public static void main(String[] args) {
//创建 3 个窗口
// TicketSell1 t1 = new TicketSell1("A窗口");
// TicketSell1 t2 = new TicketSell1("B窗口");
// TicketSell1 t3 = new TicketSell1("C窗口");
// t1.start();
// t2.start();
// t3.start();
/**==================1、使用同步代码块解决=====================*/
// TicketSellSolution1 t1 = new TicketSellSolution1("A窗口");
// TicketSellSolution1 t2 = new TicketSellSolution1("B窗口");
// TicketSellSolution1 t3 = new TicketSellSolution1("C窗口");
// t1.start();
// t2.start();
// t3.start();
/**==================2、使用同步方法(貌似同步方法不能解决同步问题)=====================*/
// TicketSellSolution2 t1 = new TicketSellSolution2("A窗口");
// TicketSellSolution2 t2 = new TicketSellSolution2("B窗口");
// TicketSellSolution2 t3 = new TicketSellSolution2("C窗口");
// t1.start();
// t2.start();
// t3.start();
/**==================3、使用锁机制(貌似同步方法不能解决同步问题)=====================*/
// TicketSellSolution3 t1 = new TicketSellSolution3("A窗口");
// TicketSellSolution3 t2 = new TicketSellSolution3("B窗口");
// TicketSellSolution3 t3 = new TicketSellSolution3("C窗口");
// t1.start();
// t2.start();
// t3.start();
/**==================3、使用锁机制(貌似同步方法不能解决同步问题)=====================*/
// Thread t1 = new Thread(new TicketSellSolution4());
// Thread t2 = new Thread(new TicketSellSolution4());
// Thread t3 = new Thread(new TicketSellSolution4());
// t1.start();
// t2.start();
// t3.start();
}
}
部分内容参考自网络:http://www.cnblogs.com/handsomeye/p/5999362.html
http://www.cnblogs.com/dolphin0520/p/3923167.html
http://www.cnblogs.com/handsomeye/p/5999362.html
编程开发之--java多线程学习总结(6)的更多相关文章
- 编程开发之--java多线程学习总结(1)问题引入与概念叙述
1.经典问题,火车站售票,公共票源箱,多个窗口同时取箱中车票销售 package com.lfy.ThreadsSynchronize; /** * 解决办法分析:即我们不能同时让超过两个以上的线程进 ...
- 编程开发之--java多线程学习总结(5)
4.对继承自Runnable的线程进行锁机制的使用 package com.lfy.ThreadsSynchronize; import java.util.concurrent.locks.Lock ...
- 编程开发之--java多线程学习总结(4)
3.使用锁机制lock,unlock package com.lfy.ThreadsSynchronize; import java.util.concurrent.locks.Lock; impor ...
- 编程开发之--java多线程学习总结(2)同步代码块
1.第一种解决办法:同步代码块,关键字synchronized package com.lfy.ThreadsSynchronize; /** * 1.使用同步代码块 * 语法: synchroniz ...
- 编程开发之--java多线程学习总结(3)类锁
2.使用方法同步 package com.lfy.ThreadsSynchronize; /** * 1.使用同步方法 * 语法:即用 synchronized 关键字修饰方法(注意是在1个对象中用锁 ...
- Java多线程学习(转载)
Java多线程学习(转载) 时间:2015-03-14 13:53:14 阅读:137413 评论:4 收藏:3 [点我收藏+] 转载 :http://blog ...
- Java多线程学习(三)volatile关键字
转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79680693 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...
- Java多线程学习(一)Java多线程入门
转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79640870 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...
- 转:Java多线程学习(总结很详细!!!)
Java多线程学习(总结很详细!!!) 此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢? 本文主要讲java中多线程 ...
随机推荐
- ubuntu开机执行指令或脚本
vi /etc/rc.d/rc.localz 将指令添加到exit 0之前,保存.
- BASE64Encoder及BASE64Decoder编译器找不到问题
编译器自带这两个类,但是会报错找不到,需要手动让编译器识别这个类 第一步.右键项目,然后选择properties 第二步,打开如图位置 第三部,选择如图位置,双击 第四部,add添加 更改值 改为如图 ...
- tomcat下manager配置
1 安装Tomcat前需要先安装JDK.安装Tomcat后测试Tomcat成功安装. Tomcat Manager是Tomcat自带的.用于对Tomcat自身以及部署在Tomcat上的应用进行管理的w ...
- 国际时区 TimeZone ID列表
public static void main(String[] args) { Calendar c = new GregorianCalendar(); c.setTime(new Date()) ...
- solr特点四: SpellCheck(拼写检查)
接下来,我将介绍如何向应用程序添加 “您是不是要找……”(拼写检查). 提供拼写建议 Lucene 和 Solr 很久以前就开始提供拼写检查功能了,但直到添加了 SearchComponent架构之后 ...
- 10-08常用的TIME和DATE函数以及各个函数对应的头文件
系统时间和日期函数: #include <time.h> char *asctime(const struct tm *tm);//将tm中存放的信息转换为标准格式 ...
- c# BindingSource 类
1.引言 BindingSource组件是数据源和控件间的一座桥,同时提供了大量的API和Event供我们使用.使用这些API我们可以将Code与各种具体类型数据源进行解耦:使用这些Eve ...
- 离线下载解决Nuget程序包及其依赖包的方法
由于使用的一台电脑没有联网,但是需要asp.net core项目时使用到一个package,于是在nuget.org上手动下载.但是最后发现,依赖的包实在太多,手动下载太费时.于是晚上花时间研究了一下 ...
- 开发者常用的十款Chrome插件
本文是稀土掘金投稿,虽然其中有倔金的私货,是篇推广文,但我看过后认为内容确实不错,有些好插件还是第一次知道,对我很有帮助,考虑过后还是决定推荐给大家,最近我比较关注各种提高开发效率的工具与技巧,今后看 ...
- VIO的Bundle Adjustment推导
IMU模型和运动积分 $R_{\tiny{WB}} \left( t +\Delta{t} \right) = R_{\tiny{WB}} \left( t \right) Exp\left( \in ...