(一)线程与锁
一、线程的基本概念 1.1单线程 简单的说,单线程就是进程中只有一个线程。单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。 1.2多线程 由一个以上线程组成的程序称为多线程程序。常见的多线程程序如:GUI应用程序、I/O操作、网络容器等。 Java中,一定是从主线程开始执行(main方法),然后在主线程的某个位置启动新的线程。 二、线程的基本操作 2.1创建 Java中创建多线程有两种方法: 1.继承java.lang.Thread 上述代码中,MyThread类继承了类java.lang.Thread,并覆写了run方法。主线程从main方法开始执行,当主线程执行至t.start()时,启动新线程(注意此处是调用了start方法,不是run方法),新线程会并发执行自身的run方法。 2.实现java.lang.Runnable接口 上述代码中,MyThread类实现了java.lang.Runnable接口,并覆写了run方法,其它与继承java.lang.Thread完全相同。实际上,java.lang.Thread类本身也实现了Runnable接口,只不过Thread类的run方法主体里是空的,通常被子类覆写。 注意:主线程执行完成后,如果还有子线程正在执行,程序也不会结束。只有当所有线程都结束时(不包含Daemon Thread)