多线程常用操作方法(线程命名和取得)
一·线程的简介
多线程的主要的操作方法都在Thread类里面。所谓的方法,就是一个查询文档的过程。
由于现在的开发当中,很少会直接出现。
多线程的代码所以对于此部分,需要重点掌握核心的几个方法。
二、线程的命名和取得
多线程的运行状态是不确定的。
所以对于多线程的操作,必须有一个明确标实出线程对象的信息,而这个信息就往往使用名称来描述。
那么在thread类里面提供有就如下的线程的名称操作方法:
| NO· | 方法名称 | 类型 | 描述 |
|---|---|---|---|
| 01 | PublicThread(Runnabletarget,String name) | 构造 | 创建线程对象的时候设置好名字 |
| 02 | Public final void setName(Sring name) | 普通 | 设置线程名字 |
| 03 | Public final Sring getName() | 普通 | 取得线程名字 |
但是如果要想取得线程的对象,在thread类里面提供有一个方法:
- 取得当前线程对象:
Public static Thread currentThread()
三·范例:观察线程名称的取得
pubilc void run() {
for (int x=0;x<10;x ++) {
System.out.println(Thread.currentThread()
}
}
}
public class TestDemo {
public static void main(string[] args)throws E
MyThread mt=new MyThread();
new Thread(mt)start();//没有设置名字
new Thread(mt)start();//没有设置名字
new Thread(mt,"有名线程")start();//有设置名子
}
}
没有设置线程名字,则会自动分配一个线程的名字,但是需要注意的是,线程名字如果要是请避免重复。中间不要修改名字。
四、范例:观察线程的执行结果
class MyThread implements Runnable {
@Override
public void run(){
System.out.println(Thread.currentThread().getName());
}
}
public class TestDemo {
public static void main(string[] args)throws Exception {
MyThread mt=newMyThread();
mt.run();//直接通过对象调用run()方法
new Thread(mt)start();//通过线程调用
}
}
实际上以上程序可以发现主方法本身就是一个线程,所有的线程都是通过主线程创建并启动的。
五·疑问:进程在哪里?
实际上每当使用了jave命令句也是程序的时候。
都表示启动了一个新的GVM进程而主方法只是这个进程上的一个线程而已。