线程之资源类
来源:互联网 发布:中国古代数学 知乎 编辑:程序博客网 时间:2024/06/14 05:15
1 . 资源类:放着资源的类叫资源类,资源是共享的
2 .需求
* 四个窗口 一共就卖100张票
* 四个窗口各自卖100张票子, 没有共享资源 extends Thread
* 四个窗口 一共卖100张票 , 有共享资源 实现 Runnable
3 .步骤:
* 1用类实现Runnable
* 2 创建Runnable实现类对象
* 3 创建Thread对象 将 Runnable实现类对象作为参数
* 4 Thead对象 调用start方法
对应代码:
package com.qf.demo5;public class Test { public static void main(String[] args) {// 2 创建Runnable实现类对象 Window window = new Window(); // 3 创建Thread对象 将 Runnable实现类对象作为参数 // 注意: 多个线程都公用同一份资源 Thread thread = new Thread(window); Thread thread2 = new Thread(window); Thread thread3 = new Thread(window); Thread thread4 = new Thread(window); // 4 Thead对象 调用start方法 thread.start(); thread2.start(); thread3.start(); thread4.start(); }}/** * 资源是共享,要保证一共只有100张票, Window 只能创建一次对象 * * 放着资源的类 叫做 资源类 * @author Administrator * */class Window implements Runnable{ int tikcet = 100; public void run() { while(true){ if(tikcet>0){ tikcet--; System.out.println(Thread.currentThread().getName()+"卖了第"+(100-tikcet)+"还剩下"+tikcet+"张"); }else{ break; } } }}
4 . 用静态属性可以实现同样的功能,但是不推荐这样的写法, 推荐的写法是用资源类实现 Runnable, 创建资源类对象.
package com.qf.demo5;/** * 用静态属性 可以实现同样的功能 * 但是不推荐这样的写法, 推荐的写法 用资源类实现 Runnable, 创建资源类对象 */public class Test3 { public static void main(String[] args) { Suger2 suger2 = new Suger2("二狗"); Suger2 suger3 = new Suger2("小香菇"); Suger2 suger4 = new Suger2("采姑娘的小蘑菇"); Suger2 suger5 = new Suger2("观海同志"); suger2.start(); suger3.start(); suger4.start(); suger5.start(); }}class Suger2 extends Thread{ public Suger2(String name) { super(name); } static int count = 100; @Override public void run() { while(true){ if(count>0){ count--; System.out.println(Thread.currentThread().getName()+"同学,抢到了1块糖,还剩下"+count); }else{ break; } } }}
阅读全文
0 0
- 线程之资源类
- linux多线程之线程资源的释放
- java线程 之 资源同步(1)
- 线程同步 资源锁定(四)Barrier类
- Linux--多线程之线程资源回收pthread_cleanup_push和pthread_cleanup_pop
- Java线程之释放锁,释放资源,释放CPU
- 线程资源释放
- 线程结束资源释放
- 线程资源释放
- 线程资源同步分析
- C#线程资源总结
- 线程结束资源释放
- linux线程资源回收
- 线程资源释放 问题解决
- 线程资源的回收
- 线程资源的回收
- Java线程之线程池--类ThreadPoolExecutor
- 线程、进程,资源调度,资源调度算法
- JavaScript学习之自定义对象--小游戏贪吃蛇
- C语言数组中的地址偏移问题
- 局域网设备发现之Bonjour协议
- Wampserver 2.5中localhost能访问,但是localhost下面的项目打不开的解决办法
- UVA10006-快速幂Carmichael Numbers
- 线程之资源类
- Ignatius and the Princess IV
- Java中值传递和引用传递的思考
- Request
- [BZOJ3399]连通块计数
- C++函数重载
- Redis服务器简单操作类及GEO坐标附近位置查询
- Struts2学习第三天:访问web元素
- 项目中遇到的问题