Java的多线程

来源:互联网 发布:安卓动态桌面软件 编辑:程序博客网 时间:2024/05/23 15:06

Java的多线程(Thread)

 

程序、进程、线程:

程序是一段静态的代码。进程是程序的一次执行,它对应了代码从加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是代码的一条执行线索,一个进程在执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程。

 

Java中的线程:

Java语言中,Thread类及其子类创建的对象就是线程的具体实现。

 

Java中线程的生命周期:

新建的线程在它的一个完整的生命周期中通常要经历4种状态。

a.新建。

当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。此时,线程已经有了相应的内存空间和其它资源。

b.运行。

线程创建后仅仅是占有了内存资源,在JVM管理的线程中还没有该线程,该线程必须调用start()方法通知JVM,这样JVM就知道又有一个新的线程排队中。当JVMCPU的使用权切换给线程时,Thread子类的run()方法就会被执行,run()方法规定了该线程的具体使命。

c.中断。

中断有4种:

c.1 JVMCPU的使用权切换给其它线程。

c.2 执行了sleep()方法。

c.3 执行了wait()方法。

c.4 执行某个操作进入了阻塞状态。

d.死亡。

线程正常运行完它的全部工作,操作系统释放分配给线程的内存。

 

Java中创建线程的两种方式:

1.Thread的子类创建线程。

创建一个继承Thread类的子类,重写run()方法;子类对象调用strat()方法开启线程。

2.Runnable接口。

创建一个实现了Runnable接口的类,并实现它的run()方法;将这个实例类作为参数传递给Thread类的构造函数,创建一个Thread对象,Thread对象调用start()方法开启线程。

 

线程同步:

当有多个线程访问并修改同一变量时,我们需要使用线程同步,即某一时刻只允许一个线程对变量进行操作。

Java使用synchronized关键字处理线程同步问题,修改变量的所有方法用synchronized关键字修饰。


0 0
原创粉丝点击