首页 > 编程语言 > 详细

java多线程

时间:2020-03-13 13:19:38      阅读:47      评论:0      收藏:0      [点我收藏+]

java多线程包括创建线程,启动线程,控制线程,以及线程同步,以及利用java内建支持的线程池来提高多线程性能。

进程具有

独立性:是系统中独立存在的实体,拥有自己独立的资源,有自己的私有地址空间。

动态性:程序一旦进入内存,就变成一个进程,因此进程是系统中活动的指令集合,加入了时间的概念,进程有自己的生命周期和各种不同的状态。这在程序中是不具备的。

并发性:多个进程可以在单个处理器上并发执行,不会互相影响。

并发和并行的区别:并行是指同一时刻,剁掉指令在多个处理器上同时执行。并发是指同一时刻只有一条指令执行,但过个进程指令被快速轮换执行,在宏观上具有多个进程同时执行的效果。

线程是进程的执行单元,一个进程初始化后,主线程就被创建。线程可以由自己的堆栈,程序计数器,和局部变量。但没有系统资源。多个线程共享父进程的资源。

一个进程中线程可以并发执行,抢占式执行。

操作系统可以同时执行多个任务,每个任务就是进程。进程可以同时执行多个任务,每个任务就是线程。

线程的创建和启动

所有线程对象必须是Thread类或者子类的实例,线程的执行体代表线程的任务(一段程序流即一段顺序执行的代码)

1.定义Thread类的子类,并重写run方法,run方法就是线程执行体

2.创建Thread子类的实例,即创建了线程对象

3.调用线程对象的start方法启动多线程。

用继承Thread类的方法创建的线程,多个线程之间无法共享线程类的实例变量。

public class createByThread extends Thread{
    private  int i;
    public void run(){
        for(;i<100;i++){
            System.out.println(getName()+"  "+i);
        }
    }

    public static void main(String[] args) {
        for(var i=0;i<100;i++){
            System.out.println(Thread.currentThread().getName()+" "+i);
            if(i==20){
                Thread th1=new createByThread();
                th1.setName("线程NO1");
                th1.start();
                new createByThread().start();
            }
            
        }
    }
}
线程NO1  0
线程NO1  1
线程NO1  2
线程NO1  3
线程NO1  4
Thread-1  0
线程NO1  5
Thread-1  1
线程NO1  6
Thread-1  2
线程NO1  7
Thread-1  3
线程NO1  8

  程序结果显示,两个线程各自有自己的私有成员变量i

实现Runnable接口创建线程类

1.定义Runnable接口的实现类,并重写接口的run方法,该run方法时该线程的执行体

2.创建实现类的实例,作为target

3创建Thread的实例,并用target做构造器的参数。

4调用线程对象的start()方法。

java多线程

原文:https://www.cnblogs.com/tomato190/p/12485837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!