【Java】--线程

概念:
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。
系统资源分配和调度的独立单位,相互之间不能共享资源,由操作系统

线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。
依靠程序执行的顺序控制流,只能使用程序的资源和环境,共享进程的全部资源
线程分总体两类:用户线程和守候线程
用户线程执行完毕的时候,JVM自动关闭。但是守候线程却不独立于JVM,守候线程一般是由操作系统或者用户自己创建的。

Java中,每个线程都有一个调用栈,即使不在程序中创建任何新的线程,线程也在后台运行着。一个Java应用总是从main()方法开始运行,mian()方法运行在一个线程内,它被称为主线程。一旦创建一个新的线程,就产生一个新的调用栈。

class T extends Thread {
    private Integer i = null;

    public T(Integer i) {
        this.i = i;
    }

    public void run() {//run不能直接调用,调用不分时。
        int i = 0;
        for (; ; ) {
            System.out.println(i++);
        }
    }
}

public class 线程text1 {
    public static void main(String[] args) {
        Integer i = 0;
        T t = new T(i);
        T t1 = new T(i);//传对象的引用,说明t和t1能访问同一份数据

        // t.run();不能调用run执行任务
        t.start();//调用start间接执行run()
        t1.start();//通过Thread类中的start()方法启动线程,并运行。
    }

}

这个简单的例子首先继承了Thread类,启动线程要调用Thread对象的start()方法,而不是run()或者别的方法。在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。在调用start()方法之后,启动新的执行线程(具有新的调用栈)。该线程从新状态转移到可运行状态,当该线程获得机会执行时,其目标run()方法将运行。

线程调度:
线程调度是指按照特定的机制为多个线程分配CPU的使用权 一个CPU,只能执行一条指令,每个指令在获得CPU使用权后才可执行,而多线程的并发执行只是人的感官,实际上是轮换执行。在运行池中,有很多的处于就绪状态的线程在等待CPU,Java虚拟机要为多个线程分配CPU的使用权,有两种调度:分时调度和抢占调度。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值