java 多线程开发二
来源:互联网 发布:淘宝网天猫女装毛衣 编辑:程序博客网 时间:2024/06/05 17:55
1.判断线程是否启动
/** * @author 曹飛龍 * 判断线程是否启动 */public class Test6 implements Runnable {private int count = 5;// 假设当前还有5张票@Overridepublic void run() {while (count > 0) {//System.out.println(Thread.currentThread().getName() + "买票" + count);count--;}}public static void main(String[] args) {Test6 test = new Test6();Thread td=new Thread(test,"窗口A");System.out.println(td.isAlive());td.start();System.out.println(td.isAlive());}}// 运行效果://false//true
2.线程的强制执行
执行以下程序可以发现当主线程运行到5的时候主线程等待td 线程执行完之后才能执行
/** * @author 曹飛龍 * 线程的强制执行 */public class Test7 implements Runnable {private int count = 15;// 假设当前还有5张票@Overridepublic void run() {while (count > 0) {System.out.println(Thread.currentThread().getName() + "买票" + count);count--;}}public static void main(String[] args) {Test7 test = new Test7();Thread td = new Thread(test, "窗口A");td.start();for (int i = 0; i < 10; i++) {System.out.println("main 线程执行---"+i);if (i == 5) {try {td.join();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}// 运行效果://main 线程执行---0//窗口A买票15//main 线程执行---1//窗口A买票14//main 线程执行---2//窗口A买票13//main 线程执行---3//窗口A买票12//main 线程执行---4//窗口A买票11//main 线程执行---5//窗口A买票10//窗口A买票9//窗口A买票8//窗口A买票7//窗口A买票6//窗口A买票5//窗口A买票4//窗口A买票3//窗口A买票2//窗口A买票1//main 线程执行---6//main 线程执行---7//main 线程执行---8//main 线程执行---9
3.线程的休眠
每次打印都间隔一秒钟
/** * @author 曹飛龍 * 线程的休眠 */public class Test8 implements Runnable {private int count = 5;// 假设当前还有5张票@Overridepublic void run() {while (count > 0) {try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(Thread.currentThread().getName() + "买票" + count);count--;}}public static void main(String[] args) {Test8 test = new Test8();Thread td = new Thread(test, "窗口A");td.start();}}// 运行效果://窗口A买票5//窗口A买票4//窗口A买票3//窗口A买票2//窗口A买票14.线程的同步
之前我们做的一个用多个线程买票的程序是 发现有一个票被多次卖掉这个时候我们如果用了同步就不会出现那种情况
/** * @author 曹飛龍 同步 */public class Test11 implements Runnable {private int count = 5;// 假设当前还有5张票@Overridepublic void run() {pay();}//同步synchronized 用这个关键修饰public synchronized void pay() {while (count > 0) {try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(Thread.currentThread().getName() + "买票"+ count);count--;}}public static void main(String[] args) {Test11 test = new Test11();Thread td = new Thread(test, "窗口A");Thread td1 = new Thread(test, "窗口B");td1.start();td.start();}}// 运行效果://窗口B买票5//窗口B买票4//窗口B买票3//窗口B买票2//窗口B买票1
0 0
- java 多线程开发二
- Java多线程开发一、二、三、四
- Java多线程应用开发(二)
- Java多线程开发系列之二:如何创建多线程
- Java多线程(二)
- java多线程(二)
- java多线程总结<二>
- Java----多线程详解(二)
- JAVA多线程基础(二)
- java基础----多线程(二)
- java 多线程实例二
- java中的多线程(二)
- Java--多线程(二)
- java多线程(二)
- JAVA多线程(二)
- Java多线程详解(二)
- JAVA多线程(二)
- java多线程二
- mmu 二级页映射分析
- 一个喜欢看书,写博客的人
- windows cpan 编译安装DBD::mysql
- Fragment中调用SimpleAdapter问题
- 设计模式(笔记)优先使用对象组合而不是类继承
- java 多线程开发二
- Code Jam Problem D. GoroSort
- 定制eclipse代码提示--设置空格键不上屏
- 2014.5.1 训练日志(上午):动态规划(dp)
- UVa 10562 - Undraw the Trees
- mysqldump VS mysqlhotcopy及脚本实例
- 网络创业不能随大流和炒冷饭
- Android内核--Activity调度机制
- 查找字符串中第一个不重复的字符的方法。