多线程1

 1 Java程序运行原理
java 命令会启动 java 虚拟机,启动 JVM,等于启动了一个应用程序,也就是启动了一个进程。该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 main 方法。所以 main方法运行在主线程中。在此之前的所有程序都是单线程的。
  2 jvm 是多线程的

  JVM启动至少启动了垃圾回收线程和主线程,所以是多线程的。

  3 线程中断

  首先我创建一个线程,然后重写run方法,然后让该线程休眠10S钟

  public class ThreadStop extends Thread {
    @Override
    public void run() {
        System.out.println("开始执行:" + new Date());
             try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            // e.printStackTrace();
            System.out.println("线程被终止了");
        }

        System.out.println("结束执行:" + new Date());
    }
}

 然后我在测试类中,当线程睡眠了3S种,直接停止线程

public class ThreadStopDemo {
	public static void main(String[] args) {
		ThreadStop ts = new ThreadStop();
		ts.start();

		// 你超过三秒不醒过来,我就干死你
		try {
			Thread.sleep(3000);
			// ts.stop();
			ts.interrupt();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}

 4  线程的生命周期

 

 首先,我们创建了一个线程,调用该线程对象的start方法,此时线程的状态是就绪状态,首先说一下cpu,cpu在同一个时间段,只能运行一个线程,所以当这个线程A抢到了cup的执行权,那么它由就绪状态转别成运行状态,如果线程A运行完了,那么线程A结束,变成死亡状态,如果线程A没有运行完,但是这个时候线程B抢到了CUP的执行权,那么线程A从运行状态转变成就绪状态,如果线程A在运行的时候,被调用了等待,或者睡眠的方法,那么这个时候,线程状态编程阻塞状态,然后当过了休息的时间段之后,成为就绪状态,重新抢夺cpu的执行权。

  

猜你喜欢

转载自1193355343.iteye.com/blog/2369650