一、线程/进程概念

    进程:对应于java中的每个工程,在内存中占有独立的内存空间

    线程:分为主线程和支线程,主线程指的是程序在执行时main方法的入口,支线程指的是主线程中执行的各条语句

二、线程的创建

    线程创建分两种,第一种是继承Thread类,重写类中的run();第二种是现象runnable接口,重写接口中run()。

具体的:

        package mypackage

        public class MyThread{

         public static void main(String[] args){
          Runner  r = new Rnner(); 
          Thread t  = new Thread(r);
           ThreadT t2 = new ThreadT();
          t.start();

          t2.start();

             }

}

class Rnner implements Runnable{

        public static void run(){

        System.out.println("线程一");

    }

}

class ThreadT extends Thread{

    public static void run(){

    System.out.println("线程二");

}   

}

三、线程的执行顺序

cpu的执行速度很快,每秒钟几亿次,因此cpu在执行时把时间分成一个个代码片段,随机分配给各个线程,线程随分配的时间片段执行。

四、线程的状态

2018.6.29日记(线程、ajax、map集合)

五、线程中用到的方法:

Thread.isAlive();

Thread.getPriority();

Thread.setPriority();

Thread.join(t2) :将当前Thread线程加入到t2线程中,t2线程暂停执行,Thread执行,Thread执行完毕后,t2继续执行

Tread.sleep(Second):线程睡眠XX秒,如果线程在同步锁内,线程不释放锁

Tread.wait()/Tread.notify()/notifyAll():线程进入等待线程池/唤醒一个/全部线程

Thread.yield():让出cpu,当前线程进入就绪队列等待调度


线程的创建和运行:

package thread;

public class TestThread {
public static void main(String[] args) {
new Thread() {
public void run() {
for(int i=0;i<100;i++) {
System.out.println("线程1");
}
}
}.start();
new Thread(new Runnable() {
public void run() {
for(int i=0;i<100;i++) {
System.out.println("线程2");
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
for(int i=0;i<100;i++) {
System.out.println("线程4");
}
}
}
) {
public void run() {
for(int i=0;i<100;i++) {
System.out.println("线程3");
}
}
}.start();
}

}


相关文章:

  • 2021-10-20
  • 2022-12-23
  • 2021-11-28
  • 2021-07-12
  • 2021-04-03
猜你喜欢
  • 2021-06-20
  • 2021-10-04
  • 2021-07-06
  • 2021-08-02
  • 2021-10-29
  • 2022-12-23
  • 2021-12-31
相关资源
相似解决方案