码迷,mamicode.com
首页 > 编程语言 > 详细

多线程初识

时间:2019-05-21 13:04:01      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:就是   单位   实现   star   系统   机制   进入   接口   art   

线程入门

理解线程与进程的关系是学习线程的基础。进程是指在系统中正在运行的一个应用程序实例。

线程是比进程更小的执行单位。所谓多线程是指一个进程在执行过程中可以产生多个同时存在,同时运行的线程。

多线程机制可以合理利用资源,提高程序运行效率。一个进程至少包含一个线程,程序运行时即自动产生一个线程,如java中主函数Main就是在线程上运行的。除了主线程不再创建新的线程时,当前程序是单线程的。

线程实现

java中实现多线程有两种方式:继承Thread类和实现Runnable接口。

两种方式的比较:

  1. 继承Thread类可以直接使用Thread类的方法;
  2. 继承Thread类会受到java单继承的影响;
  3. 继承Thread类不利于共享资源;
  4. 实现Runnable接口可以避免java单继承的问题;
  5. 实现Runnable接口不能直接使用Thread类的方法;
  6. 实现Runnable接口可以实现资源共享;

重点

以上两种方式都必须重写run()方法,正确启动线程的方法是调用Thread类中的start()方法。

线程生命周期概述

java中的线程对象都有自己的生命周期,线程的生命周期一般具有五种状态,即创建,就绪,运行,阻塞和终止。

创建状态

程序使用构造方法创建线程对象后,新线程对象即进入创建状态。此时线程已经具有相应的内存空间和其它资源,但不可运行。

就绪状态

线程对象创建后调用start()方法启动线程,即进入就绪状态。就绪状态下的线程进入线程队列,等待cpu调用。

运行状态

线程获取cpu资源后即处于运行状态,此时将自动调用线程对象中的run()方法。run()方法定义了该线程的具体操作和实现功能。需要注意的是运行状态下的线程调用yield()方法后,将从运行状态返回就绪状态。

阻塞状态

运行状态的线程调用sleep(),wait()等方法后将进入阻塞状态。线程阻塞条件解除后,线程再次转入就绪状态。

终止状态

当线程执行run()方法完毕后处于终止状态,处于终止状态的线程不具有继续运行的能力。

多线程初识

标签:就是   单位   实现   star   系统   机制   进入   接口   art   

原文地址:https://www.cnblogs.com/J-Simon/p/10899057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!