java 线程基本知识(一)

import java.lang.Thread;

1.创建线程 Thread th=new Thread();

ps: Thread th=new Thread() {

public void run() {

System.out.println("run方法");

}

};

Thread th=new Thread(new Runnable());

2.启动线程:th.start();

注意:不是调用run方法。run方法并非是由刚创建的新线程所执行的,而是被创建新线程的当前线程所执行的。也就是被执行创建代码的线程所执行的。想要让创建的新线程执行run方法,必须调用新线程的start()。

线程名

它有助于我们区分不同的线程。

public class MyRunnable implements Runnable{

	@Override
	public void run() {
		System.out.println("myrunnable run()");
	}

}
MyRunnable myrunnable=new MyRunnable();
Thread th=new Thread(myrunnable,"New Threads") ;
th.start();
System.out.println(th.getName());

Runnable并非Thread的子类,所以没有getName()方法。可以通过以下方法获取当前线程的引用:

Thread.currentThread();

获取Runnable线程名:

String name=Thread.currentThread().getName();

 

举例

首先获取当前线程的名字。然后开启10个新线程,输出相应线程的内容。

    public static void main(String[] args) {

    	System.out.println(Thread.currentThread().getName());
    	for(int i=1;i<10;i++) {
    		new Thread(""+i) {
    			public void run() {
    				System.out.println("Thread "+getName()+"running");
    			}
    		}.start();
    	}
    }

运行结果如下:

main
Thread 1running
Thread 2running
Thread 3running
Thread 4running
Thread 5running
Thread 6running
Thread 9running
Thread 7running
Thread 8running

这里线程9出现在了7和8之前,是因为执行线程的顺序并非是有序的。线程是并行执行而非顺序的。

猜你喜欢

转载自blog.csdn.net/ljcgit/article/details/81289080