线程与进程(上)

来源:互联网 发布:ios wkwebview 传值js 编辑:程序博客网 时间:2024/04/30 10:13

多进程:
操作系统(同时)运行多个任务(程序)
所谓 同时 实际上cpu是不能同时执行多个应用程序
它实际上是采用 分时操作 在不同进程之间切换 只不过因为切换时间短 所以感觉上是同时

多线程:
同一程序有多个顺序流(同时)执行

单线程是一个线程顺序执行
多线程类似 多进程的执行
线程的执行过程
生成新线程后 进入就绪状态(runnable) 与其他线程一起抢占cpu执行时间
抢到时间后 进入 running状态 中途被别的线程抢占 则又进入Runnable状态
执行完后 就dead
线程运行时 可能碰到阻塞时间 就由running进入blocked 暂停
解除阻塞后进入runnable状态

线程也是类的对象

这里写图片描述

public class FirstThread extends Thread{    public void run(){        for(int i =0;i<100;i++){            System.out.println("Other - - ->"+i);        }    }}
public class Main {    public static void main(String[] args) {        FirstThread ft = new FirstThread();        //调用start()函数 线程进入就绪状态 与主线程抢占cpu  start()是FirstThread从Thread继承而来        //如果调用run()函数 线程就直接进入运行状态 待到运行完 才运行主线程 也就是说 没有开辟新线程        ft.start();        for(int i =0;i<100;i++){            System.out.println("Main - - ->"+i);        }    }}
0 0