一、锁的作用 当多线程执行某一业务时(特别是对数据的更新、新增)等操作,可能就会出现多个线程对同一条数据进行修改。其最终的结果一定与你期望的结果“不太一样”,这就与需要一把锁来控制线程排排队了 - java内部为我们提供了解决方案,可以使用synchronized或Lock等方式来实现。 但是在生产 ...
分类:
其他好文 时间:
2019-02-14 20:49:49
阅读次数:
222
jmeter 控制线程组执行顺序 这个要配合全局变量、if和while来实现BeanShell取样器,全局变量:${__setProperty(newswitch,${switch1},)}if条件:"${__P(newswitch,)}"=="1"while条件:${__javaScript("$ ...
分类:
其他好文 时间:
2019-02-10 21:50:55
阅读次数:
1111
1. ThreadLocal的简介 在多线程编程中通常解决线程安全的问题我们会利用synchronzed或者lock控制线程对临界区资源的同步顺序从而解决线程安全的问题,但是这种加锁的方式会让未获取到锁的线程进行阻塞等待,很显然这种方式的时间效率并不是很好。线程安全问题的核心在于多个线程会对同一个临 ...
分类:
其他好文 时间:
2019-02-08 20:10:36
阅读次数:
181
1.到底什么是线程?什么是进程? Python自己没有这玩意,Python中调用的操作系统的线程和进程. 2.Python多线程情况下: 计算密集型操作:效率低,Python内置的一个全局解释器锁,锁的作用就是保证同一时刻一个进程中只有一个线程可以被cpu调度,多线程无法利用多核优势,可以通过多进程 ...
分类:
编程语言 时间:
2019-02-04 12:51:01
阅读次数:
221
线程池的作用 限制系统中执行线程的数量 做法:使用线程池控制线程数量,其他线程排队等候。 为什么要使用线程池 减少线程的创建和销毁 可以根据系统承受能力调整线程数量,太多了系统扛不住 几个重要的类 ExecutorService:线程池接口 ScheduledExecutorService: 和Ti ...
分类:
编程语言 时间:
2019-01-30 21:46:14
阅读次数:
205
此类表示在单独的控制线程中运行的活动,有两种方法可以指定该活动,一是将可调用对象传递给构造函数,二是通过覆盖子类中的run()方法。 ...
分类:
编程语言 时间:
2019-01-30 19:59:11
阅读次数:
178
一 协程介绍 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。、 需要强调的是: 对比操作系统控制线程的切换,用户在单线程内控制协程的切换 优点如下: 缺点如下: 总结协程特点: 二 Green ...
分类:
其他好文 时间:
2019-01-21 21:15:29
阅读次数:
173
线程与全局解释器锁(GIL) 一、线程概论 1、何为线程 每个进程有一个地址空间,而且默认就有一个控制线程。如果把一个进程比喻为一个车间的工作过程那么线程就是车间里的一个一个流水线。 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。 多线程(即多个 ...
分类:
编程语言 时间:
2019-01-20 11:52:01
阅读次数:
201
上一篇文章介绍了:创建县城的两种方式、Event对象判断线程是否启动、利用信号量控制线程并发。 博客链接:线程、进程、协程和GIL(二) 这一篇来说说线程间通信的那些事儿: 一个线程向另一个线程发送数据最安全的方式就是使用queue库中的队列了,通过创建一个供多个线程共享的Queue对象,这些线程使 ...
分类:
编程语言 时间:
2019-01-13 01:56:03
阅读次数:
197
一、Java 线程池 Java通过Executors提供四种线程池,分别为:1、newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。(线程最大并发数不可控制);线程池为无限大,当执行第二个任务时若第一个任务已经完成,会 ...
分类:
编程语言 时间:
2019-01-07 17:28:52
阅读次数:
511