1.start( ) :启动当前线程,调用当前线程的run( )
mt1.start();
2.run( ):通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中
public void run() {}
3.currentThread( ) :静态方法,返回执行当前代码的线程
System.out.println(Thread.currentThread().getName()+":"+i); }
4.getName( ):获取当前线程的名字
System.out.println(Thread.currentThread().getName()+":"+i); }
5.setName( ):设置当前线程的名字
mt1.setName("线程一:");
Thread.currentThread().setName("主线程:");
6.yield( ):释放当前cpu的执行权
this.yield(); (this是当前的方法,可以略去)
7.join( ) :在线程a中调用线程b的join( ),此时线程a就进入阻塞状态,知道线程b完全执行完以 后,线程a才结束阻塞状态。
if (i == 20){ try { mt1.join(); } catch (InterruptedException e) { e.printStackTrace(); }
8.sleep( ) :让当前线程“睡眠”指定的millitime毫秒,在指定的millitime毫秒时间内,当前线程阻塞状态。
9.isAlive( ) :判断当前线程是否存活。
class MyThread extends java.lang.Thread { @Override public void run() { for (int i = 0; i < 100; i++) { if( i % 2 == 0){ System.out.println(Thread.currentThread().getName()+":"+i); } if (i % 20 == 0){ yield(); } } } }
public class ThreadTest { public static void main(String[] args) { MyThread mt1 = new MyThread(); mt1.setName("线程一:"); mt1.start(); Thread.currentThread().setName("主线程:"); for (int i = 0; i < 100; i++) { if (i % 2 != 0){ System.out.println(Thread.currentThread().getName()+":"+i); } if (i == 20){ try { mt1.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
1、什么是进程?
2、什么是线程?
3.线程的创建
4、线程常用的API
线程休眠API
public static void sleep(long time):让当前线程休眠多少秒;
5、创建线程的方式二:
实现Runnable接口的方式