程序:为了完成特定的任务,用某种语言编写的一组指令的集合。
进程:正在进行的一个程序。是一个动态的过程,有生命周期。
线程:进程的进一步细化,是程序内部的一条执行路径。
创建线程继承Thread
创建继承于thread类的子类
重写Thread类的run();
创建Thread类的子类的对象
通过此对象调用start();
测试Thread的常用方法:
1.start():启用当前线程,调用当前线程的run()
2.run():重写Thread的方法,将创建的线程要执行的操作声明在此方法中
3.currentThread():静态方法,返回执行当前的代码线程
4.getName():获取当前线程的名字
5.setName():设置当前线程的名字
6.this.yield():释放当前CPU
7.join():在线程A中调用线程B的join(),此时线程A进入阻塞状态,直到线程B进行完
8.stop():强制线程结束
9:sleep():
public class HelloThreadTest {
public static void main(String[] args){
HelloThread h1 = new HelloThread();
//线程起名
h1.setName("线程一");
//启动线程
h1.start();
//主线程命名
Thread.currentThread().setName("主线程");
for(int i=0;i<100;i++){
if(i%2==0){
try {
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+":"+i);
}
//
if(i==20){
try {
h1.join();
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
}
class HelloThread extends Thread{
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){
this.yield();//释放分线程
}
}
}
}