并发编程

[ Perl ] 多线程并发编程

https://www.cnblogs.com/yeungchie/ 记录一些常用的 模块 / 方法 。 多线程 使用模块 threads use 5.010; use threads; sub func { my $id = shift; sleep 1; print "This is threa ... »

yeungchie Perl

并发编程基础底层原理学习(一)

计算机基本构成 计算机主要由处理器,存储器,输入/输出设备组成。 处理器:控制计算机的操作,执行程序数据处理,只有一个处理器时,它通常指中央处理器 (CPU) 内存:存储数据和程序,该类存储器是易失性的,即计算机关机时存储器的内容会丢失,而磁盘存储器在计算机关闭时不会丢失 输入/输出模块:在计算机与 ... »

【面试普通人VS高手系列】lock和synchronized区别

今天来分享一道阿里一面的面试题,“lock和synchronized的区别”。 对于这个问题,看看普通人和高手的回答! #普通人: 嗯,lock是J.U.C包里面提供的锁,synchronized是Java中的同步关键字。 他们都可以实现多线程对共享资源访问的线程安全性。 #高手: 下面我从4个方面 ... »

【面试普通人VS高手】Kafka的零拷贝原理?

最近一个学员去滴滴面试,在第二面的时候遇到了这个问题: "请你简单说一下Kafka的零拷贝原理" 然后那个学员努力在大脑里检索了很久,没有回答上来。 那么今天,我们基于这个问题来看看,普通人和高手是如何回答的! 普通人的回答: 零拷贝是一种减少数据拷贝的机制,能够有效提升数据的效率 高手的回答: 在 ... »

并发编程进阶

并发编程进阶 在我们的程序中,多多少少都会用到多线程技术,而我们以往都是使用Thread类来创建一个新的线程: public static void main(String[] args) { Thread t = new Thread(() -> System.out.println("Hello ... »

zwtblog

【面试普通人VS高手系列】Fail-safe机制与Fail-fast机制分别有什么作用

前段时间一个小伙伴去面试,遇到这样一个问题。 ”Fail-safe机制与Fail-fast机制分别有什么作用“ 他说他听到这个问题的时候,脑子里满脸问号。那么今天我们来看一下,关于这个问题,普通人和高手应该如何回答吧。 普通人的回答 额… . 嗯 … 高手的回答Fail-safe和Fail-fast ... »

44_并发编程-数据共享

一、引入 展望未来,基于消息传递的并发编程是大势所趋;即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合。通过消息队列交换数据。这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布 »

hq82

【面试普通人VS高手系列】谈谈你对AQS的理解

AQS是AbstractQueuedSynchronizer的简称,是并发编程中比较核心的组件。 在很多大厂的面试中,面试官对于并发编程的考核要求相对较高,简单来说,如果你不懂并发编程,那么你很难通过大厂高薪岗位的面试。 今天来和大家聊聊并发编程中的AQS组件。 我们来看一下,关于“谈谈你对AQS的 ... »

mic112

Java并发编程异步操作Future和FutureTask

码农在囧途 生活是一个洗礼自己的过程,这个洗礼并不是传统意义上的洗礼,传统意义上的洗礼通常认为这个人的思想得到洗礼,灵魂得到洗礼,十分的清新脱俗,不世故,不圆滑,而现实的洗礼实则是让一个人褪去幼稚,褪去无知,让你变得点头哈腰,圆滑世故,我们都是动物,需要物质满足,更需要欲望填补,所以,变成自己小时候 ... »

并发编程实战-保证线程安全方式

从题目来看,显然有点大,线程安全问题,从小系统到各分布式系统,其复杂程度可以想象,随之线程安全的抽象性不言而喻。总之就为了下个定义:一个类在可以被多个线程安全调用时就是线程安全的。 »

hulichao

并发编程之死锁

死锁 死锁指的是某个资源占用后,一直得不到释放,导致其他需要这个资源的线程进入阻塞状态 产生死锁的情况: 对同一把互斥锁加锁的多次(对同一个) # 对同一个互斥锁多次执行acquire 可能导致死锁,情况如下: from threading import Lock l = Lock() l.acquire() # 第一个任务 print("task run") print("over") # l »

java并发编程:Executor、Executors、ExecutorService

Executor:一个接口,其定义了一个接收Runnable对象的方法executor,其方法签名为executor(Runnable command),该方法接收一个Runable实例,它用来执行一个任务,任务即一个实现了Runnable接口的类,一般来说,Runnable任务开辟在新线程中的使用方法为:new Thread(new RunnableTask())).start(),但在Exec »

Java并发编程:volatile关键字解析  

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有 »

iOS -NSOperation并发编程

http://www.cocoachina.com/game/20151201/14517.html  http://blog.csdn.net/qinlicang/article/details/42221585 本文是投稿文章,作者:RyanJIN(简书)对于iOS的并发编程, 用的最普遍的就是GCD了, GCD结合Block可以so easy的实现多线程并发编程. 但如果你看一些诸如AFNe »

【读书笔记】并发编程需要注意的几个典型问题

        本文为《Computer Systems: A Programmer's Perspective》第12.7节—并发编程问题的读书笔记。下面开始正文。 1. 线程安全        一个线程安全(thread-safety)的函数应满足条件:当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。相对地,若一个不是线程安全的函数被称为线程不安全(thread-unsafety)函 »

python基础-并发编程之I/O模型基础

1. I/O模型介绍 1.1 I/O模型基础 更好的理解I/O模型,需要先回顾:同步、异步、阻塞、非阻塞 同步:执行完代码后,原地等待,直至出现结果 异步:执行完代码后,不等待,继续执行其他事务(常与回调机制关联) 阻塞:cpu在遇到I/O操作,进入阻塞状态,cpu切换到其他任务 非阻塞:不会遇到I/O操作,cpu一直处于计算状态 注:同步不等于阻塞 I/O模型总计有五种,其中信号驱动I/O, »

【转】Java并发编程:如何创建线程?

一、Java中关于应用程序和进程相关的概念   在Java中,一个应用程序对应着一个JVM实例(也有地方称为JVM进程),一般来说名字默认是java.exe或者javaw.exe(windows下可以通过任务管理器查看)。Java采用的是单线程编程模型,即在我们自己的程序中如果没有主动创建线程的话,只会创建一个线程,通常称为主线程。但是要注意,虽然只有一个线程来执行任务,不代表JVM中只有一个线程 »

Java并发编程系列之三十二:丢失的信号

这里的丢失的信号是指线程必须等待一个已经为真的条件,在開始等待之前没有检查等待条件。这样的场景事实上挺好理解,假设一边烧水,一边看电视,那么在水烧开的时候。由于太投入而没有注意到水被烧开。 丢失的信号指的就是这样的情况。 创建两个线程分别运行通知和等待方法,而且将运行通知的线程先与运行等待的线程,以下的代码演示了这点: package com.rhwayfun.patchwork.con »

并发编程二

一.GIL全局解释器锁 二.GIL与普通的互斥锁 三.死锁与递归锁 四.信号量 五.event 事件 六.线程   一,何为全局解释器锁   1. python解释器锁有很多种,Jpython Ppython  最常见的就是Cpython      GIL其实本质也是一把互斥锁:用来阻止几个线程同时操作同一份数据,对于被操作的数据加锁      由并发变成了串行,虽然牺牲了效率但是保证了数据的安全 »

并发编程之多进程理论

一,什么是进程   进程:正在进行的一个过程或者说是一个任务,而负责执行任务则是CPU   那么一个扣扣能否称为一个进程?   所以说进程指的是一个正在进程或者说一个任务,是一个抽象的概念,扣扣是死的,也就是说程序是死的,只是一个文件的执行。    二,进程与程序的区别   程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 举例: 想象一位有一手好厨艺的厨师正在为他的女儿烘制生日蛋糕 »