并发与竟态,以及自旋锁,原子操作等 并发:多个任务并行执行。 竟态:并发的线程对共享资源的访问容易发生竟态。 竟态发生情况举例: 1.多处理器SMP的多个cpu,smp是一种紧耦合,共享总线存贮的系统模型。 2.单CPU内进程与抢占他的进程。 3.中断与进程之间:硬中断,软中断,tasklet,低半 ...
分类:
其他好文 时间:
2019-10-13 11:11:51
阅读次数:
70
CountDownLatch是一个多线程控制工具类。可以实现计数器的功能。 CountDownLatch的两种应用场景:(不能实现多个线程顺序执行!) 1. 让某线程等待其他线程执行完毕,再开始执行; 2. 让多个线程同时开始并行执行; 构造器: 主要方法: 第一种场景: 让某线程,等待n个线程执行 ...
分类:
其他好文 时间:
2019-10-12 14:42:48
阅读次数:
90
什么是线程 线程是操作系统调度的最小单位,在一个进程中,一般至少有一个线程在运行。一个进程中包含的多个线程,在多核处理器中,操作系统可以将多个线程调度到不同的CPU核心上运行,多个线程可以并行运行。 在同一个进程中的多个线程,共享同一个进程空间,这意味着,线程间通信的成本相对进程间会低很多,但是由于 ...
分类:
编程语言 时间:
2019-10-07 00:52:19
阅读次数:
88
一、两种并发模型 多线程共享内存,以共享内存的方式来通信。比如java在访问共享数据的时候,通过加锁来实现,java.util.concurrent包。 CSP(communicating sequential processes)并发模型,以通信的方式来共享内存。Go的CSP并发模型是通过goro ...
分类:
编程语言 时间:
2019-09-24 10:38:58
阅读次数:
72
C++ 11新标准中,正式的为该语言引入了多线程概念。新标准提供了一个线程库thread,通过创建一个thread对象来管理C++程序中的多线程。 本文简单聊一下C++多线程相关的一些概念及thread的基本用法。 0. 并行执行 程序并行执行两个必要条件: 多处理器(multiple proces ...
分类:
编程语言 时间:
2019-09-22 19:44:00
阅读次数:
118
线程 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。Java 虚拟机允许应用程序并发地运行多个执行线程。 Thread类:该类的对象代表一个 ...
分类:
编程语言 时间:
2019-09-18 12:58:54
阅读次数:
228
假如我有一个订单相关的统计接口,需要返回3样数据:今日订单数、今日交易额、总交易额。 一般的我们的做法是串行调用3个函数,把调用返回的结果返回给调用者,这3次调用时串行执行的,如果每个调用耗时1秒的话,3次调用总耗时就是3秒。 这种做法效率非常低,因为3次调用之间无所谓先后顺序,所以采用并行执行效率 ...
分类:
其他好文 时间:
2019-09-15 11:32:46
阅读次数:
899
前言 先列出java并发涉及的知识点,后面再慢慢补. java并发 1 常见概念 进程:程序执行的实体,操作系统资源调度资源分配的基本单元 线程:程序执行的最小单元,拥有独立的堆栈和局部变量等属性,可以共享进程的资源 同步是串行执行,阻塞 异步是并行执行,非阻塞 并发:多个任务交替执行 并行:多个任 ...
分类:
编程语言 时间:
2019-09-12 00:07:41
阅读次数:
115
对于spring的定时任务,最近有接触过一些,对于串行和并行也学习了一下,现在这里做下记录。 我是把每个定时任务分别写在不同的类中的,即一个类就是一个定时任务,然后在spring配置文件中进行配置,首先说串行任务的配置。如下: 1、串行 如上所示为两个串行的定时任务,分别为类className1中的 ...
分类:
编程语言 时间:
2019-09-02 12:07:19
阅读次数:
89
什么是进程和线程? 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直 ...
分类:
编程语言 时间:
2019-09-01 01:24:21
阅读次数:
85