Java多线程编程-首篇 线程进程 同步异步 线程间的互斥与同步 阻塞非阻塞

本文主要介绍多线程的几个基本概念,分清概念的同时对多线程编程才会有更加深入的了解

  1. 线程进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

进程是资源分配的基本单位,与进程相对应,线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。
——摘自百度百科

  1. 同步异步

同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。

同步,就是调用某个方法是,调用方得主动等待这个调用返回结果才能继续往后执行。
异步,调用方调用后立即返回,调用者继续执行后续操作,被调用者通过某种方式来通知调用者,或者通过回掉函数来处理这个调用

  1. 线程间的互斥与同步

线程间的互斥是指多个线程同时操作某个临界资源时,该临界资源在同一个时间点,只能被某一个线程使用,如输入输出设备资源,打印机,当A线程访问打印机这个临界资源时,另一个线程B必须等待线程A操作结束后才可使用打印机。

线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。
展开来说就是,多个线程进行通信时,线程A与线程B按照一定的执行次序进行通信,线程B需要使用到线程A执行后的结果,当A没有进行生产时,B就不能进行消费,当B没有消费时,A就不能再继续生产数据。

  1. 阻塞非阻塞

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态

阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值