- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线程的操作方法
线程的操作方法
在多线程中所有的操作方法实际上都是从Thread类开始的。所有的操作基本上都是Thread类中。
下面看看线程类中的方法:
1.获取和设置线程的名称
在Thread类中可以通过getName()方法取得线程的名字,通过setName()方法给线程设置名称
线程的名称一般在启动线程前设置,但也允许为已经运行的线程设置名称。允许两个Thread对象有相同的名字,但为了清晰,应当经量避免这中情况出现。
另外,如果程序并没有为线程起名字,则系统会自动为线程分配一个名称
实例:
public class MyThreadDemo implements Runnable{
public void run() {
for (int i = 0; i 10; i++) {
//currentThread()获取当前正在执行的线程对象
System.out.println(Thread.currentThread().getName()+运行,i=+i);
}
}
}
public class ThreadDemo1 {
public static void main(String[] args) {
//创建目标对象
MyThreadDemo mt=new MyThreadDemo();
//创建并启动线程(系统自动设置线程名称)
new Thread(mt).start();
//手动设置线程名称
new Thread(mt,线程1).start();
new Thread(mt,线程2).start();
}
}
从执行结果来看,指定的名称会自动出现,如果没有指定会发现线程会使用自动编号的方式完成,按照Thread-0,Thread-1依次编号,实际上他肯定是在类中存在一个Static属性,来记录编号的。
2.获取当前正在执行的线程对象
程序我们使用currentThread()静态方法获取到当前正在运行线程的对象。
实例:
public class MyThreadDemo2 implements Runnable {
public void run() {
for(int i=0;i10;i++){
System.out.println(Thread.currentThread().getName()+运行,i=+i);
}
}
}
public class TreadDemo2 {
public static void main(String[] args) {
//创建目标对象
MyThreadDemo2 mt=new MyThreadDemo2();
//启动线程
new Thread(mt,线程1).start();
//调用run方法
mt.run();
}
}
通过上面的程序你会发现,程序中由于直接通过线程的目标对象调用里面的run()方法,所以输出结果中就包含了一个“main”,此线程就是由“ mt.run();”产生的。因为此法是由主方法完成的,也就是说实际上主方法本身也是一个线程-----主线程。
问出现啦,既然主方法都是以线程的形式出现的,那么Java程序运行时到底启动了多少个线程?
答案是至少启动了两个线程。
从之前的学习来看,每当Java程序执行的时候,实际上都会启动一个jvm,没一个jvm实际上就是在操作系统中启动一个进程。Java本身具备了垃圾收集机制,所以在Java程序运行时至少启动两个线程:主线程,GC。
3.判断线程是否启动
在Java中使用isAlive()方法来判断线程是否启动,如果是true就说明线程启动,false就是没有启动。
实例:
public class MyThreadDemo3 implements Runnable{
public void run() {
for(int i=0;i10;i++){
System.out.println(Thread.currentThread().getName()+运行,i=+i);
}
}
}
public class ThreadDemo3 {
public static void main(String args[]) {
//创建一个线程目标对象
MyThreadDemo3 mt=new MyThreadDemo3();
//创建线程对象
Thread th1=new Thread(mt,线程1);
//isAlive()方法判断线
原创力文档


文档评论(0)