博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 编程思想 多线程学习笔记
阅读量:3521 次
发布时间:2019-05-20

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

 

 

 

废话就不说了,直接看书上的sample:

public class LiftOff implements Runnable {	protected int countDown = 10; // Default	private static int taskCount = 0;	private final int id = taskCount++; //区分任务的多个实例	public LiftOff() {}	public LiftOff(int countDown) {		this.countDown = countDown;	}	public String status() {		return "#" + id + "(" +				(countDown > 0 ? countDown : "Liftoff!") + "), ";	}	public void run() {		while(countDown-- > 0) {			System.out.print(status());			//是对线程调度器的一种建议,"我已经执行完生命周期中最重要的部分了,此刻正是切换给其他任务执行一段时间的大好时机。"			Thread.yield();		}	}} ///:~
import com.chot.concurrency.LiftOff;//当main()创建thread对象时,它并没有捕获任何对这些对象的引用。在使用普通对象时,这对与垃圾回收来说是一场公平的游戏,但是在使用thread时,情况就不同了。//每个thread 都“注册”了它自己,因此确实有一个对它的引用,而且在它的任务退出其run() 并死亡之前,垃圾回收器无法清除它。// (为何GC 无法将其清除呢? 答:因为有栈帧对其有引用,即有一个指针只想堆中那个由thread创建的object。故无法标记其可清除。)public class MoreBasicThreads {  public static void main(String[] args) {    for(int i = 0; i < 5; i++)      new Thread(new LiftOff()).start();    System.out.println("Waiting for LiftOff");  }}

 

转载地址:http://zjhqj.baihongyu.com/

你可能感兴趣的文章
JS操作数组常用实用方法
查看>>
java实现MD5多次进行加密加盐操作
查看>>
springboot实现CAS的server服务器端的搭建,并实现链接mysql数据库,自定义加密算法
查看>>
Python超详细的安装教程
查看>>
小甲鱼Python第一讲(我和Python的第一次亲密接触)
查看>>
小甲鱼Python第三讲(小插曲之变量和字符串)
查看>>
小甲鱼Python第十一讲(一个打了激素的数组2)
查看>>
小甲鱼Python第十三讲(戴上了枷锁的列表)
查看>>
小甲鱼Python第十四讲(各种奇葩的内置方法)
查看>>
小甲鱼Python第十五讲(格式化)
查看>>
小甲鱼Python第十七讲(Python的乐高积木)
查看>>
小甲鱼Python第十八讲(函数:灵活即强大)
查看>>
小甲鱼Python第十九讲(函数,我的地盘听我的)
查看>>
小甲鱼python第二十讲(内嵌函数和闭包)
查看>>
小甲鱼Python第二十一讲(lambda表达式)
查看>>
小甲鱼Python第二十二讲(递归)
查看>>
小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)
查看>>
小甲鱼Python第二十五讲、第二十六讲(字典)
查看>>
小甲鱼Python第二十七讲(集合)
查看>>
2020光学期刊一区二区影响因子发布(科睿唯安)
查看>>