package reentrantlock; import java.util.ArrayList; public class ProviderAndConsumerTest { static ProviderAndConsumer providerAndConsumer = new ProviderAndConsumer(); public static void main(String[] args) throws InterruptedException { // new Thread(n…
并发:是指系统具有处理多个任务/动作的能力. 并行:是指系统具有同时处理多个任务/动作的能力. 并行是并发的子集. 同步:当进程执行到一个IO(等待外部数据)的时候. 异步:当进程执行到一个IO不等到数据接收成功后再回来处理. def add(): sum = 0 for i in range(1000000): sum += i print("sum",sum)def mul(): sum2 = 1 for i in range(1,100000): sum2 *= i print(…
一 队列queue 当必须在多个线程之间安全地交换信息时,队列在线程编程中特别有用. 队列的作用:1.解耦,使程序直接实现松耦合 2.提高处理效率 列表与队列都是有顺序的,但是他们之间有一个很大的区别:从列表中取出一个数据,数据还在列表中,从队列中取出一个数据,队列中就减少一个数据.class queue.Queue(maxsize=0) #先入先出 class queue.LifoQueue(maxsize=0) #last in fisrt out class queue.PriorityQ…
Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用多线程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间信息传递. 如果在多线程中,给存放数据,也就是修改同一份数据, 所以就需要上锁 但是在列队这不用加 因为!!队列是线程安全的,存储数据的时候,程序就会给上锁, 能够保证数据的唯一性. 1.先入先出 fisrt in fisrt out ---> queue.Queue() FIFO队列 2.后入先出 last in fis…
package de.bvb; /** * 生产者消费者模式 * 通过 wait() 和 notify() 通信方法实现 * */ public class Test1 { public static void main(String[] args) { Godown godown = new Godown(50); for (int i = 0; i < 5; i++) { new ProducerThread(i * 10, godown).start(); new ConsumerThre…
生产者消费者模式 定义自己的异常过滤器并注册 namespace Eco.Web.App.Models { public class MyExceptionAttribute : HandleErrorAttribute { public static Queue<Exception> ExceptionQueue = new Queue<Exception>(); public override void OnException(ExceptionContext filterCo…