首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏数据云团

    并发篇-python并发通信-3

    .qsize() 返回队列的大小 .empty() 如果队列为空,返回True,反之False .full() 如果队列满了,返回True,反之False .full 与 maxsize 大小对应 .get([block[, timeout]])获取队列,timeout等待时间 .get_nowait() 相当Queue.get(False) .put(item) 写入队列,timeout等待时间 .put_nowait(item) 相当Queue.put(item, False) .task_done

    1K20发布于 2019-07-18
  • 来自专栏JackeyGao的博客

    Python 高级并发3

    Python 高级并发3 Posted September 30, 2015 本篇主要讲案例, 两个使用Concurrent.futures实现的并发, 一个是多线程, 一个是多进程。 if n % 2 == 0: return False sqrt_n = int(math.floor(math.sqrt(n))) for i in range(3,

    77820发布于 2018-08-02
  • 来自专栏Ryan Miao

    java并发编程(3):ThreadLocal

    /** * 学习ThreadLocal * Created by mrf on 2016/3/6. */ public class ConnectionManager { private 则要设置initialValue方法: /** * 不用set,则必须重写initialValue * 设置的内容是可以自己定义的,这里只是示例 */ class TestThreadLocal3{ public static void main(String[] args) throws InterruptedException { final TestThreadLocal3 test = new TestThreadLocal3(); System.out.println("===========main线程=============="); /** * Created by mrf on 2016/3/4. */ public class TestThreadLocal { private static ThreadLocal<

    863120发布于 2018-03-13
  • 来自专栏sktj

    python3 并发编程

    线程和进程区别:需要增加 什么时候用线程、什么时候用进程 多线程 threading 构造函数 image.png 实例:和单线程加入时间对比 image.png image.png 或者直接继承线程

    52210发布于 2019-12-13
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    Java并发学习3【面试+工作】

    Java并发学习3【面试+工作】 六.读写锁 ReadWriteLock是jdk5中提供的读写分离锁。读写分离锁可以有效的帮助减少锁竞争,以提升性能。 用锁分离的机制来提升性能非常容易理解,比如线程A1,A2,A3进行写操作,B1,B2,B3进行读操作,如果使用重入锁或者内部锁,则理论上说所有读之间、读和写之间、写和写之间都是串行操作。 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。 提供定时执行、定期执行、单线程、并发控制等功能。 以上成员都在java.util.concurrent包下,是jdk并发包的核心类。其中ThreadPoolExecutor表示一个线程池。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

    47740发布于 2018-07-26
  • 来自专栏devops_k8s

    Python3并发编程

    # 3. 提供方式不同。 操作系统 VS 编程语言。 解释并发性与并行性 计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指进程的并行性(多处理机的情况下,多个进程同时运行)和并发性(单处理机的情况下,多个进程在同一时间间隔运行的 并发性: 任何进程都可以与其他进程一起并发执行. 独立性: 进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位. 进程的并行与并发 并行: 并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑:(资源够用,比如三个线程,四核的CPU) 并发: 并发是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核CPU (3)阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。

    1.3K71发布于 2020-09-27
  • 来自专栏奔跑的蛙牛技术博客

    java并发知识点(3)-同步

    两个线程同时更新一个银行账户的时候,会出现问题 问题在于对金额的增加操作不是不可分割的原子操作 amounts[to] 可以被处理成为以下操作 1)将amounts[to] 加载到寄存器 2)增加amount 3) 有两种方法防止代码块受并发干扰 1.

    65920发布于 2018-09-05
  • 来自专栏Node.js开发

    Promise面试题3控制并发

    在写这篇文章的时候我有点犹豫,因为先前写过一篇类似的,一道关于并发控制的面试题,只不过那篇文章只给出了一种解决方案,后来在网上又陆续找到两种解决方案,说来惭愧,研究问题总是浅尝辄止,所以今天便放在一起 但是我们要求,任意时刻,同时下载的链接数量不可以超过 3 个。 请写一段代码实现这个需求,要求尽可能快速地将所有图片下载完成。 上图这样的排队和并发请求的场景基本类似,窗口只有三个,人超过三个之后,后面的人只能排队了。 3个图片资源,这样可以得到 3 个 Promise实例,组成一个数组promises ,然后不断的调用 Promise.race 来返回最快改变状态的 Promise,然后从数组(promises )中删掉这个 以上便是关于并发控制的一点点思考,有使用promise的,有不使用promise的,关键在于灵活运用,通过这次梳理,你有哪些思考呢,欢迎留言。

    3K31发布于 2019-07-19
  • 来自专栏韩曙亮的移动开发专栏

    【Java 并发编程】线程简介 ( 进程与线程 | 并发概念 | 线程间通信 | Java 并发 3 特性 )

    文章目录 一、进程与线程 二、并发 三、线程间通信 四、Java 并发 3 特性 一、进程与线程 ---- 最开始是没有线程这个概念的 , 一个应用程序就是一个进程 , 应用程序运行时 , 如果还要处理与用户交互的逻辑 CPU 完成 ; 为了 高效利用 CPU 这个稀缺资源 , 引入了线程概念 ; 进程 : 每个应用都是一个独立进程 , 是 资源分配 , 调度 的最小单元 ; 线程 : CPU 调度的最小单元 ; 二、并发 , 程序计数器 , 三者都是线程独有的数据 ; 程序运行 的 指令 , 就放在 上面的 线程栈 中 ; 每个 线程栈 中都有 一串指令 , 等待执行 ; 这些线程栈 , 不能 串行 执行 , 必须 并发 执行 , 才能保证所有的应用程序 , 都能得到很好的用户体验 ; 并行 是 同一个 时间点 处理多个事件 ; 并发 是 同一个 时间段 处理多个事件 ; 三、线程间通信 ---- 线程间通信 : 假设有 3 特性 ---- Java 并发3 特性 : 原子性 : 每个操作都是 不可拆分的原子操作 ; 在线程中进行 a++ 就不是原子操作 , 该操作分为 3 个步骤 , 首先从主内存中读取

    60630编辑于 2023-03-29
  • 来自专栏python3

    11.python并发入门 part3

    200),还没来得及做修改,就被切换到其他线程了,其他的线程也是一样的道理,取到temp_num = 200这个值后,还没来得及计算,执行到sleep触发一次IO操作后,又切到了其他的线程,第2个第3个直到最后一个线程都拿到了 我们把执行过程也输出一下: i am Thread-1 , set num 200 i am Thread-2 , set num 200 i am Thread-3 , set num 200 i am

    38510发布于 2020-01-08
  • 来自专栏大猪的笔记

    优雅简单玩转python3异步并发

    在python3之后,随着async/await引入,异步调用以全新而便捷的方式让人眼前一亮。 js_str = await resp.text() print(len(js_str)) 调用协程 调用协程并不会立刻得到返回的结果,如果想等待future/task的结果,使用await 如果想并发执行 ,并统一处理结果,使用loop.create_task,在创建任务的时候,任务就会执行 task可await, 可先把创建的task保存,再统一await 下面的示例,将以并发调用5次baidu。 这里举一个栗子,并发调用两次sleep async def run(): start = time.time() loop = asyncio.get_event_loop() print(time.time()-start) 有了asyncio和loop,向以前的并发(线程)使用方式说拜拜吧。

    1.4K10编辑于 2023-01-30
  • 来自专栏python3

    Python3并发检验代理池地址

    【用线程池并发检验代理有效性】 #encoding=utf-8 #author: walker #date: 2016-04-14 #summary: 用线程池并发检验代理有效性 import os None #声明 exMsg = None try: r = requests.get(url=desturl, headers=Headers, proxies=proxies, timeout=3) feature = 'xxx' #目标网页的特征码 validProxyPool = GetValidProxyPool(rawProxyPool, desturl, feature) 【用协程并发检验代理有效性 #encoding=utf-8 #author: walker #date: 2017-03-28 #summary: 用协程并发检验代理有效性 #Python sys.version:3.6.1 (v3.6.1

    60430发布于 2020-01-03
  • 来自专栏悠扬前奏的博客

    Java并发-3.synchronized关键字

    printCount(); } } // main函数略 } 以上代码执行结果为: A:0 B count:1 B count:1 A:1 B count:2 A:2 B count:3 A:3 A:4 B count:5 2. synchronized(instance) { i++; } } } // main方法略 } 3. method(); } // main函数略 } 以上代码执行结果为: SyncThread2:0 SyncThread2:1 SyncThread2:2 SyncThread2:3 } } public synchronized void run() { method(); } // main函数略 } 执行结果同3中例子一样

    51620发布于 2019-05-28
  • 来自专栏程序猿的大杂烩

    Java并发编程(3)- 如何安全发布对象

    SingletonExample4(); 语句的时候,底层实际进行了以下三步操作: 1.memory = allocate() // 分配对象的内存空间 2.ctorInstance() // 初始化对象 3. 经过JVM和CPU的优化,指令可能会重排成下面的顺序: 1.memory = allocate() // 分配对象的内存空间 3.instance = memory // 设置instance 指向刚分配的内存 2.ctorInstance() // 初始化对象 假设按照这个指令顺序执行的话,那么当线程A执行完1和3时,instance对象还未完成初始化,但已经不再指向null。 始终保证是下面的顺序: 1.memory = allocate() // 分配对象的内存空间 2.ctorInstance() // 初始化对象 3.instance = memory //

    87920发布于 2020-09-23
  • 来自专栏架构师成长之路

    java并发编程实战(3) Lock显示锁

    事实上,占有锁的线程释放锁一般会是以下三种情况之一:   1:占有锁的线程执行完了该代码块,然后释放对锁的占有;   2:占有锁线程执行发生异常,此时JVM会让线程自动释放锁;   3:占有锁线程进入 Case 3 :   我们可以通过Lock得知线程有没有成功获取到锁 (解决方案:ReentrantLock) ,但这个是synchronized无法办到的。 public static void main(String[] args) { final Queue queue = new Queue(); //一共启动6个线程,3个读线程 ,3个写线程 for (int i = 0; i < 3; i++) { //启动1个读线程 new Thread() { 3、公平锁   公平锁即 尽量 以请求锁的顺序来获取锁。比如,同是有多个线程在等待一个锁,当这个锁被释放时,等待时间最久的线程(最先请求的线程)会获得该所,这种就是公平锁。

    58920编辑于 2022-04-14
  • 来自专栏changxin7

    3.并发编程多线程(理论部分)

    线程比进程更轻量级,线程比进程更容易创建可撤销,在许多操作系统中,创建一个线程比创建一个进程要快10-100倍,在有大量线程需要动态和快速修改时,这一特性很有用 ​ \3. 只能在一个进程里并发地开启三个线程,如果是单线程,那就只能是,键盘输入时,不能处理文字和自动保存,自动保存时又不能输入和处理文字。

    70310发布于 2019-09-10
  • 来自专栏python3

    Python3 实现简易ping监控并发

    Python3 实现简易ping监控并发动报警邮件 1、实现原理通过ping命令结果获取丢包率和延时情况,当丢包率和延时达到预设值时,将结果作为邮件内容,并发送邮件 2、邮件是用smtplib和email 实现发送的 3、目前脚本有个小问题就是:我打开文件,循环读,当读第一行时,我执行ping,获取结果,把结果写到一个文件里,同时判断是否达到预设值,如果达到,就把结果加到邮件内容,就这样一直循环,当把文件读完 if err: sys.exit(err.decode().strip('\n'))     pres = list(res.decode().split('\n'))     loss = pres[3] src = line.split()[1]                 dest = line.split()[2]                 threshold = line.split()[3]

    2.8K10发布于 2020-01-06
  • 来自专栏数据云团

    并发篇-python非阻塞套接字-3

    >>>selector = selectors.DefaultSelector()

    89030发布于 2019-07-18
  • 来自专栏java一日一条

    java高并发锁的3种实现

    提到锁,大家可能都会想到synchronized关键字,使用它的确可以解决一切并发问题,但是对于系统吞吐要求更高的,在这里提供了几个小技巧,帮助大家减小锁粒度,提高系统并发能力。 int num=storage.get(key); storage.set(key,num+1); lock.unlock(key); 这个比较类似于数据库表锁和行锁的概念,显然行锁的并发能力比表锁高很多 由于锁的粒度局限于具体用户,使系统获得了最大程度的并发。 ? CopyOnWriteMap?

    3.2K30发布于 2018-09-14
  • 来自专栏测试开发干货

    接口测试平台187: 并发报告(3

    第二步,我们要给这个res.cases这个列表进行填充。所以是个循环肯定,而循环内的每个元素是个字典,所以:

    36230编辑于 2022-05-20
领券