栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-多线程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-多线程

多线程 多任务

现代操作系统都可以执行多任务。多任务就是同时运行多个任务。即使是单核CPU可以同时运行多个任务,因为操作系统可以让CPU对多个任务轮流进行执行。

进程

计算机中,我们把一个任务称为一个进程,浏览器就是一个进程,视频播放器也是一个进程。进程和线程的关系是:一个进程可以包含一个或者多个线程。

线程
  • 线程是进程的轻量级最小部分,可以与其它线程同时运行,线程是独立的,因为他们呢都有独立的执行路径。
  • 一个线程中发生异常,不会影响其他线程的执行。
  • 进程的所有线程共享公共内存。
  • 同时执行多个线程的过程称为多线程。
  • 多线程的目的是同时执行程序的多个部分,能够最大限度的利用CPU时间。
  • 操作系统调度的最小任务单位是线程而不是进程。
创建新线程

当Java程序启动时,实际上是启动了一个JVM进程,然后JVM启动主线程来执行main()方法。在main()方法中,我们可以启动其它线程。
创建一个新线程,需要实例化一个Thread实例,然后调用它的start()方法,但是这个线程启动后实际上什么也不做就立刻结束了,我们希望新线程能执行指定的代码,可以从Tread派生一个自定义类,然后覆写run()方法:

package com.wtcto;
import java.io.*;

public class HelloJava{
    public static void main(String[]args)throws IOException{
     Thread t=new MyThread();   
     t.start();//启动新线程
    }
}
class MyThread extends Thread{
    public void run(){
        System.out.println("start new thread!");
    }
}
  • Java用Thread对象表示一个线程
  • 通过调用start()启用一个新线程
  • 一个线程对象只能调用一次start()方法
  • 线程的执行代码写在run()方法中
  • 线程调用由操作系统决定,程序本身无法决定调度顺序
  • Thread.sleep()可以把当前线程暂停一段时间
线程的状态

Java线程状态有几种:

  • New:创建新的线程,尚未执行;
  • Runnable:运行中的线程,正在执行run()方法的Java代码;
  • Bloecked:运行中的线程,因为某些操作被阻塞而挂起;
  • Waiting:运行中的线程,因为某些操作在等待中;
  • Timed Waiting: 运行中的线程,因为执行sleep()方法正在计时等待;
  • Terminated:线程已终止,因为run()方法执行完毕。
    当线程启动后,它可以在Runnable、Blocked、Waiting和Timed Waiting这几个状态之间切换,直到最后变成Terminated状态,线程终止。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463245.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号