说到线程我们首先要了解进程。进程我们可以简单的理解为一个程序。比如我们在windows的任务管理器中就能看到一个个进程。一个进程可以包含多个线程。
Java中线程有两种方法实现:
1.继承thread类
2.实现runable接口
两种方法都可以但是如果你的类已经要继承其他类了,你就只能用runable接口了。
下面给出两个例子:
1.继承thread
class mythread extends Thread{
private String name;
public mythread(String name) {
this.name=name;
}
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(name + ":" + i }
}
2.实现runable接口
class mythread2 implements Runnable{
private String name;
public mythread2(String name) {
this.name=name;
}
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(name + ":" + i);
}
}
}
实例化的方法
public class test {
static void Main(String[] args)
{
Thread t1=new mythread1("a");
mythread2 r1=new mythread2("b");
Thread t2=new Thread(r1);
t1.start();
t2.start();
}
}
还有线程的开启一定要用start();而不是run();用run你的线程将不会进入线程池,会直接运行run里面的代码。
线程的其他操作还有:
static Thread currentThread()
返回对当前正在执行的线程对象的引用。
long getId()
返回该线程的标识符。
String getName()
返回该线程的名称。
void join()
强行执行该线程
static void sleep(long millis)
在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。
static void sleep(long millis, int nanos)
在指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。
void start()
使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
static void yield()
暂停当前正在执行的线程对象,并执行其他线程。