
并发
文章平均质量分 50
zhujm320
这个作者很懒,什么都没留下…
展开
-
Java开启线程的4种方式
介绍多线程是java中的一个重要的知识点,且在业务中经常使用,还是有必要掌握一下它。本文简要介绍一下线程的4种启动方式, 继承Thread,实现Runnable接口,实现Callable接口,通过线程池来启动线程。以上4种形式的线程启动方式,最终都是通过Thread.start()方法来真正启动线程。继承Thread通过继承java线程类Thread,并覆写run方法来实现线程。如下:package com.stx.demo;/** * 线程使用方式1 * 直接继承Threa.原创 2021-05-25 12:07:03 · 4459 阅读 · 2 评论 -
用synchronized实现Semaphore
介绍基于Semaphore的功能,主要用来实现并发和限流,本文采用synchronized来实现Semaphore基础功能。关于Semaphore的说明,请参考JDK1.8 信号量(Semaphore)的基本使用代码实现public class MySemaphore { private volatile int count; private volatile int waitCount = 0; /** * 初始化信号量 * @param co原创 2021-05-16 18:57:52 · 328 阅读 · 4 评论 -
JDK1.8 信号量(Semaphore)的基本使用
介绍信号量支持多线程同时并发,但是同时并发线程数是确定的,起到了限流的作用。比如: 临界资源的数量是5个,那么则可以同时支持5个线程进入临界资源,待进入临界资源的线程退出后,其他线程才能进入来,也就是说当前占用临界资源的线程小于5个,其他线程才能进来。以停车场的车位为例: 停车场有5个车位,如果都停满了车,那么其他车就无法进来;反之,其他车可以进入停车场,直接到车位停满。使用初始化信号量public Semaphore(int permits) { sync = new Nonf原创 2021-05-16 12:30:22 · 540 阅读 · 3 评论 -
进程线程协程的初步理解
进程进程是操作系统进行资源分配的基本单位,简单理解就是正在运行程序的实例。进程的用户空间是相互独立,系统空间是共享的,它们之间进行通信(即数据交换)需要通过系统空间来完成。线程线程是程序调度的最小单位,也可以理解为程序执行的路径。一个进程可以有多个线程。线程在调度时,启动,停止,暂停和恢复都需要进行内核态的切换,需要额外的系统开销。协程协程它是微线程,可以看作程序的组件,协程跑在线程中,它的状态切换不需要系统开销,它们在线程中是顺序执行的,一个线程可以有多个协程。协程的出原创 2021-05-05 16:30:32 · 182 阅读 · 2 评论