并发编程

JUC并发编程LinkedBlockingQueue队列深入分析源码

目录 LinkedBlockingQueue介绍 put方法-生产者 take方法-消费者 总结 LinkedBlockingQueue介绍 在JUC包下关于线程安全的队列实现有很多,那么此篇文章讲解LinkedBlockingQueue的实现原理,相信各位读者在线程池中能看到Linked »

Java 多线程并发编程提高数据处理效率的详细过程

目录 ?工作场景中遇到这样一个需求:根据主机的 IP 地址联动更新其他模型的相关信息。需求很简单,只涉及一般的数据库联动查询以及更新操作,然而在编码实现过程中发现,由于主机的数量很多,导致循环遍历查询、更新时花费很长的时间,调用一次接口大概需要 30-40 min 时间才能完成操作。 ?因此, »

C#并发编程之Task类怎么使用

这篇文章主要介绍了C#并发编程之Task类怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#并发编程之Task类怎么使用文章都会有所收获,下面我们一起来看看吧。 Task.Run Task是建立在线程池之上的一种多线程技术,它的出现使Thread成为历史。其使用 »

C#并发编程之Task类怎么使用

这篇文章主要介绍了C#并发编程之Task类怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#并发编程之Task类怎么使用文章都会有所收获,下面我们一起来看看吧。 Task.Run Task是建立在线程池之上的一种多线程技术,它的出现使Thread成为历史。其使用 »

C#并发编程之Task类详解

目录 Task.Run Task类 返回值 等待和延续 取消任务 Task.Run Task是建立在线程池之上的一种多线程技术,它的出现使Thread成为历史。其使用方法非常简单,下面在顶级语句中做一个简单的例子 void printN(string name) { for »

C#并发编程之Task类详解

目录 Task.Run Task类 返回值 等待和延续 取消任务 Task.Run Task是建立在线程池之上的一种多线程技术,它的出现使Thread成为历史。其使用方法非常简单,下面在顶级语句中做一个简单的例子 void printN(string name) { for »

【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系

并发编程的难题和挑战 在并发编程的技术领域中,对于我们而言的难题主要有两个: 多线程之间如何进行通信和线程之间如何同步,通信是指线程之间以何种机制来交换信息。 多线程的线程通信机制 在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 共享内存的方式,多线程之间共享公共的状态(变量) »

【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系

并发编程的难题和挑战 在并发编程的技术领域中,对于我们而言的难题主要有两个: 多线程之间如何进行通信和线程之间如何同步,通信是指线程之间以何种机制来交换信息。 多线程的线程通信机制 在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 共享内存的方式,多线程之间共享公共的状态(变量) »

Golang并发编程之main goroutine的创建与调度详解

目录 0. 简介 1. 创建main goroutine 2. 调度main goroutine 0. 简介 上一篇博客我们分析了调度器的初始化,这篇博客我们正式进入main函数及为其创建的goroutine的过程分析。 1. 创建main goroutine 接上文,在runtim »

Golang并发编程之main goroutine的创建与调度详解

目录 0. 简介 1. 创建main goroutine 2. 调度main goroutine 0. 简介 上一篇博客我们分析了调度器的初始化,这篇博客我们正式进入main函数及为其创建的goroutine的过程分析。 1. 创建main goroutine 接上文,在runtim »

Golang并发编程之GMP模型详解

目录 0. 简介 1. 进程、线程和协程 1.1 线程模型 2. GMP模型 2.1 G 2.2 M 2.3 P 3. 基础调度过程 0. 简介 传统的并发编程模型是基于线程和共享内存的同步访问控制的,共享数据受锁的保护,线程将争夺这些锁以访问数据。通常而言,使用线程安全的数据结构会 »

Golang并发编程之调度器初始化详解

目录 0. 简介 1. 一些全局变量 2. main函数之前 2.1 初始化g0 2.2 主线程与m0的绑定 2.3 m0和g0的绑定 2.4 调度器的初始化 0. 简介 上一篇博客简单介绍了GMP模型,这一篇我们介绍一下Go调度器的初始化过程,也就是在main.main函数运行之前所 »

Golang并发编程之GMP模型详解

目录 0. 简介 1. 进程、线程和协程 1.1 线程模型 2. GMP模型 2.1 G 2.2 M 2.3 P 3. 基础调度过程 0. 简介 传统的并发编程模型是基于线程和共享内存的同步访问控制的,共享数据受锁的保护,线程将争夺这些锁以访问数据。通常而言,使用线程安全的数据结构会 »

瞅一眼就能学会的GO并发编程使用教程

目录 GO的并发编程分享 啥是并发编程呢 为啥要有并发编程 并发和并行的区别 协程 goroutine 是啥 GO 高并发的原因是啥 GOLANG并发编程涉及哪些知识点呢 Goroutine的那些事 如何使用 goroutine 启动单个协程 多个协程 GO 中的协程 goroutine 是如 »

《深入理解高并发编程:JDK核心技术》-冰河新书上市

大家好,我是冰河~~ 废话说多了没用,并发编程技术一直是初级程序员进阶高级工程师的前提条件,也是成为大厂程序员的必备技能,更是突破自身技术瓶颈的必经之路。 2022年6月我出版了“冰河技术丛书”之“深入理解高并发编程”系列的第1部作品——《深入理解高并发编程:核心原理与案例实战》,书中全面细致地介绍 »

binghe001

《深入理解高并发编程:JDK核心技术》-冰河新书上市

大家好,我是冰河~~ 废话说多了没用,并发编程技术一直是初级程序员进阶高级工程师的前提条件,也是成为大厂程序员的必备技能,更是突破自身技术瓶颈的必经之路。 2022年6月我出版了“冰河技术丛书”之“深入理解高并发编程”系列的第1部作品——《深入理解高并发编程:核心原理与案例实战》,书中全面细致地介绍 »

binghe001

并发编程那点儿事

目录 线程理论 线程和进程的区别 进程 线程 进程间通讯 管道 消息队列 信号量 共享内存 套接字 消息队列和管道的区别 线程间通信 共享内存 消息传递 线程的五种状态和生命周期 线程阻塞的三种情况 线程结束的三种方式 线程的上下文 线程调度器 线程调度类型 抢占式调度 协 »

chuan2

Java并发编程变量可见性避免指令重排使用详解

目录 引言 变量的可见性 Java 变量的可见性问题 Volatile 的可见性保证 完整的 volatile 可见性保证 指令重排 volatile 的 Happens Before 保证 volatile 不能保证原子性 什么时候适合使用 volatile volatile 的原理 »

Java并发编程变量可见性避免指令重排使用详解

目录 引言 变量的可见性 Java 变量的可见性问题 Volatile 的可见性保证 完整的 volatile 可见性保证 指令重排 volatile 的 Happens Before 保证 volatile 不能保证原子性 什么时候适合使用 volatile volatile 的原理 »

Pthread并发编程之线程基本元素和状态的剖析

目录 前言 深入理解 pthread_create 基础例子介绍 深入理解参数 thread 深入理解参数 arg 深入理解参数 attr 设置线程栈空间的大小 自己为线程的栈申请空间 使用 malloc 函数申请内存空间 使用 mmap 申请内存作为栈空间 深入理解线程的状态 关于栈大小程 »