美文网首页
进程和线程

进程和线程

作者: 大百白白 | 来源:发表于2020-02-13 19:52 被阅读0次

进程和线程的区别与联系:
1、进程是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程一般由程序,数据集合和进程控制块三部分组成。进程具有的特征:动态性、并发性、独立性、结构性。
2、线程是程序执行的最小单位。线程上下文切换比进程上下文切换要快得多。
3、进程使用独立的数据空间,而线程共享进程的数据空间。一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线。

创建线程有几种不同的方式:
继承Thread类、实现Runnable接口、使用Callable和FutureTask、使用线程池(如用Executor框架)、Spring实现多线程(底层是线程池)、定时器Timer(底层封装了一个TimerThread对象)。
实现Runnable接口这种方式更受欢迎,因为不需要继承Thread类,已经继承或者需要继承别的接口的时候,只能实现接口,Java是不支持多继承的。同时,线程池也是非常高效的,很容易实现和使用。

线程在执行过程中,可以处于下面几种状态:
就绪(Runnable):线程准备运行,不一定立马就能开始执行。
运行中(Running):进程正在执行线程的代码。
等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
睡眠中(Sleeping):线程被强制睡眠。
I/O阻塞(Blocked on I/O):等待I/O操作完成。
同步阻塞(Blocked on Synchronization):等待获取锁。
死亡(Dead):线程完成了执行。

start()方法和run()方法的区别:
当程序调用start()方法时,会创建一个新线程,然后执行run()方法。但是如果我们直接调用run()方法,则不会创建新的线程,run()方法将作为当前调用线程本身的常规方法调用执行,并且不会发生多线程。

一个线程代码例子:

class RunnableDemo implements Runnable {
    private Thread t;
    private String threadName;

    RunnableDemo(String name) {
        // 初始化操作
        threadName = name;
        System.out.println("初始化线程名称: " + threadName);
    }

    public void run() {
        // 运行时需要执行的操作
        System.out.println("线程正在执行: " + threadName);
        System.out.println("线程 " + threadName + " 执行结束.");
    }

    public void start() {
        // 创建线程
        System.out.println("开始创建线程: " + threadName);
        if (t == null) {
            t = new Thread(this, threadName);
            t.start();
        }
    }
}

public class test {
    public static void main(String args[]) {
        RunnableDemo R1 = new RunnableDemo("Thread-1");
        R1.start();
    }
}

相关文章

  • 线程和进程概念

    线程和进程 进程 线程 线程和进程的区别

  • 17_多线程

    =================线程和进程 =============进程 =============线程 ==...

  • OC-底层原理 23:多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程 和 进程 线程和进程的定义 线程 线程时进程...

  • iOS 多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程 和 进程 线程和进程的定义 线程 线程时进程...

  • 线程

    线程和进程 进程 线程 线程和进程的区别 线程的好处和坏处 创建线程的方式一 线程中常用的方法 代码实例 创建线程...

  • iOS底层原理24:多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程和进程 线程和进程的定义 线程 线程是进程的基...

  • 多线程

    线程和进程的概念: 进程:正在运行的应用就是一个进程线程:进程中执行每个任务的是线程 进程和线程的关系: 一个进程...

  • 面试复习——Android工程师之Java面试题

    1、进程和线程 地址空间和其他资源:进程间相互独立,进程中包括多个线程,线程间共享进程资源,某进程内的线程在其他进...

  • 多线程介绍

    线程和进程 线程和进程的定义 线程:线程是进程的基本执行单元,一个进程的所有任务都在线程中执行进程要想执行任务,必...

  • 多线程编程GCD(基础知识)

    GCD 多线程编程 1.线程和进程 1.1 线程:线程是进程的基本单元,进程中所有要执行的任务,都在线程和进程中执...

网友评论

      本文标题:进程和线程

      本文链接:https://www.haomeiwen.com/subject/qcwlfhtx.html