Java多线程运行机制的基本原理
进程和线程的区别
进程
进程是一个程序执行的实例,比如说我们打开10个IE浏览器窗口,那么就有10个进程开启。一个进程可以同时被运行若干次,进程是CPU进行资源分配和调度的基本单位。
线程
线程是比进程更小的运行单位,一个进程只少有一个(主线程)或多个线程,每个线程在完成不同的任务,当线程内的多个线程在同时运行时,这种方式叫做并发。多个线程的使用大大提高了程序执行效率和处理能力。
进程与线程的区别
每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一内存地址空间,它们共享同一块内存空间中的资源。
创建线程有两张方式:
1、继承Thread类
2、实现Runnable接口,但是Runnable接口中没有start()方法,所以还需要new一个新的Thread线程来启动实现Runnable的子类。
线程同步
线程同步是为了解决多个线程对同一块数据资源进行读写操作而产生的错误。这就需要对数据的操作进行加锁,synchronized
实现线程同步有两种方式,一种是同步语句块,一种是同步方法。
线程的生命周期
线程有5种状态:新建、就绪、运行、阻塞、死亡。每种状态都是可以相互转换的。