#并发

Java并发编程之CAS

CAS(CompareandSwap,比较并交换):CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。利用CPU的CAS指令,同时借助JNI来完成Java的非阻塞算法。其它原子...
代码星球 ·2020-08-09

Java并发控制:ReentrantLock Condition使用详解

生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时生产者还想向其中放入一个新的数据项的情形,其解决方法...

阻塞队列LinkedBlockingQueue和并发队列ConcurrentLinkedQueue

这两个队列都是线程安全的。LinkedBlockingQueue:publicclassLinkedBlockingQueue<E>extendsAbstractQueue<E>implementsBlockingQueue<E>,Serializable此队列按FIFO(先进先出)...

提高代码性能及并发性的方法浅谈

最近在做系统调优,总结了下cache相关知识,以及如何提高性能和并发性能的方法。一CACHE相关1.cache概述cache,中译名高速缓冲存储器,其作用是为了更好的利用局部性原理,减少CPU访问主存的次数。简单地说,CPU正在访问的指令和数据,其可能会被以后多次访问到,或者是该指令和数据附近的内存区域,也可能会被多次...

go 单进程并发

 demo1//Thissampleprogramdemonstrateshowtocreategoroutinesand//howtheschedulerbehaves.packagemainimport("fmt""runtime""sync")//mainistheentrypointforallGop...
代码星球 ·2020-08-09

go 并发 demo

 两个进程执行两个goroutine//Thissampleprogramdemonstrateshowtocreategoroutinesand//howtheschedulerbehaves.packagemainimport("fmt""runtime""sync")//mainistheentrypo...
代码星球 ·2020-08-09

go 并发

 packagemainimport("fmt""time")funcsay(sstring){fori:=0;i<5;i++{time.Sleep(100*time.Millisecond)fmt.Println(s)}}funcmain(){gosay("hello1")say("hello2")}...
代码星球 ·2020-08-09

通过gevent实现【单线程】下的多socket并发

 serverimportsysimportsocketimporttimeimportgeventfromgeventimportsocket,monkeymonkey.patch_all()defserver(port):s=socket.socket()s.bind(('0.0.0.0',port))s...

【Scala】Actor并发编程实现单机版wordCount

文章目录对单个文本文件进行单词计数对多个文本文件进行单词计数importscala.actors.Actorimportscala.io.Source//读取文件名称样例类caseclassSubmitTask(fileName:String)classActor2WordCountextendsActor{overr...

初识 JAVA并发编程 笔记

线程:CPU执行的最小执行单元并发/高并发(服务端能够承载的吞吐量)1、硬件基础CPU核心数,内存,磁盘[机械硬盘,固态硬盘],网络2、软件层面(最大化的利用硬件资源)线程数量、JVM内存分配大小、网络通讯机制(BIO、NIO、AIO)、磁盘IO3、线程数量如何提升服务端的并发数量好比:单行车道,和多行车道并发和并行单...

多线程并行和并发的区别

 并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。(需要多核CPU) 并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。...
代码星球 ·2020-08-08

ConcurrentModificationException并发修改异常

A:ConcurrentModificationException出现:/*Iteratorit=list.iterator();//获取迭代器while(it.hasNext()){//判断集合中是否有元素Stringstr=(String)it.next();//向下转型if("world".equals(str)...

Go语言基础之并发

  并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因。并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天)。Go语言的并发通过goroutine实现。goroutine类似于...
代码星球 ·2020-08-07

Servlet的多线程并发问题

注意:servlet对象在tomcat服务器是单实例多线程的。因为servlet是多线程的,所以当多个servlet的线程同时访问了servlet的共享数据,如成员变量,可能会引发线程安全问题。  解决办法:       &nbs...
代码星球 ·2020-08-06

boost并发编程boost::atomic

三个用于并发编程的组件:atomic,thread,asio(用于同步和异步io操作) atomic,封装了不同计算机硬件的底层操作原语,提供了跨平台的原子操作功能,解决并发竞争读写变量的困扰。包含头文件<boost/atomic.hpp>,atomic可以把对类型T的操作原子化,T的要求:1.标...
代码星球 ·2020-08-05
首页上一页...1920212223...下一页尾页