java多线程 [3]

之前的博客已经将过了很多关于线程的属性和方法

 

还有几个很值得注意的属性。

 

①线程名

 

在java中每一个线程都是有名字的,比如我们操作线程遇到错误报错的时候就能看到线程的名字,一般是thread-0这种格式的。

但主线程的名字就叫做main。

可以通过Thread.currentThread()这个方法来得到现在正在运行的线程。有个方法叫做getName()方法,可以得到线程名。当然也可以人为的指定线程名在Thread这个类的定义中有很多构造方法有name这个参数。两个线程是允许取同样的名字的,但为了不造成混乱,我们一般不这么做。

 

②优先级

 

java中没个线程都存在一个优先级,如果我们不人为设定的话就是NORM_PRIORITY,这个是Thread中的static变量,默认为5。相应的还有MAX_PRIORITY,为10,和MIN_PRIORITY,为1,指越大,优先级越高。

 

操作中可以通过setPriority()方法设置优先级,main线程的优先级默认为5。

 

 

③守护属性

 

如果线程被标志为守护属性,那么这个线程就是守护线程 。守护线程不能阻止程序的退出,只要没有主线程,程序就结束,而不管守护线程的运行状态。所以,我们一般不在守护线程中做一些主要工作。
设置线程的守护属性函数为:setDaemon(true);

 

一个守护线程是在后台服务线程,例如网络服务侦听链接端口的服务,隐藏系统线程,比如垃圾回收器和其他JVM创建的线程。

如果所有的非Daemon线程都结束了,那么Daemon线程也会结束。

 

看下面的程序

 

这个程序将会一直运行下去,但把注释的那里消除之后你会发现,它可以正常停止了,这里是由于了主线程在某个时刻运行结束了,而thread线程也会跟着结束。

 

这就是这个属性的含义。

 

 


 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值