队列与多线程间关系——个人理解

Java 中所提到的阻塞队列与多线程(线程池)之间个人因概念太多、太杂总有些迷惑,这里有点小感悟,写下来省的下次又忘了,有错再改。

阻塞队列是一个个需要执行的任务,再通俗一点是一个个需要处理的属性组成的某个类的对象。

Java 的线程池可以对线程进行处理,线程中处理的是啥是不确定的,你可以处理阻塞队列取出来的任务,但是任性一点我就是不用阻塞队列,自己手动一个任务一个任务的给线程处理也无不可。只是用阻塞队列方便,它已经给我提供了添加、取出等任务管理的方法。Java 的线程池自己有一些对线程的处理的方法,如:创建、销毁、锁、提醒等功能,线程本身并没有与阻塞队列有什么关系,两者合用会更方便而已。

原文地址:https://www.cnblogs.com/ahri-gx/p/10677741.html

时间: 2024-11-01 15:29:43

队列与多线程间关系——个人理解的相关文章

深入理解 Laravel Eloquent(三)——模型间关系(关联)

Eloquent是什么 Eloquent 是一个 ORM,全称为 Object Relational Mapping,翻译为 "对象关系映射"(如果只把它当成 Database Abstraction Layer 数组库抽象层那就太小看它了).所谓 "对象",就是本文所说的 "模型(Model)":对象关系映射,即为模型间关系.中文文档: http://laravel-china.org/docs/eloquent#relationships 下

cpu个数、核数、线程数、Java多线程关系的理解+物理cpu数和cpu核数和逻辑cpu数和vcpu区别

1.cpu个数.核数.线程数.Java多线程关系的理解 URL地址:https://blog.csdn.net/helloworld0906/article/details/905471592.物理cpu数和cpu核数和逻辑cpu数和vcpu区别 URL地址:https://blog.csdn.net/budonglaoshi123/article/details/84325720 原文地址:https://www.cnblogs.com/curedfisher/p/12204102.html

OpenVPN多处理之-多队列TUN多线程

1.有一点不正确劲 在改动了那个TUN驱动后,我在想,为何我总是对一些驱动程序进行修修补补而从来不从应用程序找解决方式呢?我改动了那个TUN驱动,可是能保证我的改动对别的应用一样可用吗?难道TUN驱动就OpenVPN一家在用?这绝不可能,既然我想到了这个方法,肯定别人也想到了,仅仅所以网上没有资料,是由于这些牛人不屑于此罢了.       使用原生的没有改动的TUN驱动,怎样?Well,let's go on!       问题在哪里,问题在假设我启动多个OpenVPN进程,那么它们每个的mul

Java 多线程间的通讯

在前一小节,介绍了在多线程编程中使用同步机制的重要性,并学会了如何实现同步的方法来正确地访问共享资源.这些线程之间的关系是平等的,彼此之间并不存在任何依赖,它们各自竞争CPU资源,互不相让,并且还无条件地阻止其他线程对共享资源的异步访问.然而,也有很多现实问题要求不仅要同步的访问同一共享资源,而且线程间还彼此牵制,通过相互通信来向前推进.那么,多个线程之间是如何进行通信的呢? 解决思路 在现实应用中,很多时候都需要让多个线程按照一定的次序来访问共享资源,例如,经典的生产者和消费者问题.这类问题描

(十一)boost库之多线程间通信

(十一)boost库之多线程间通信 1.互斥锁 在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性.每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象. #include <iostream> #include <boost/thread.hpp> using namespace std; int g_num = 0; boost::mutex mu; //定义互斥锁对象 int Func(int nC

关于异步和多线程的关系

个人的理解是这样的: 1.  异步通信的意思是,当A发送完消息之后,不等待B的回应,继续执行之后的程序.在将来的某个时刻,A再来检查是否收到B的回应. 异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作. 2. 多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码.多线程可以实现线程间的切换执行. 3. 异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待.协调运行.线程就是实现异步的一个方式.异步是让调用方法的主线程不需要同步等待另一线

依赖注入与对象间关系

依赖注入(DI)是控制反转(IoC)的一种方式.目前,在.NET和Java领域已经有相当多基于DI思想的对象容器,如:Spring,Unity等.本文试图避免重复性地介绍DI基础知识和DI容器的使用,而是希望深一层探讨DI的本质和对象间关系,以达到合理设计避免滥用DI的目的. 依赖注入 vs 创建对象 有不少地方这样描述:"依赖注入改变了使用对象前先创建的传统方式,而是从外部注入依赖的对象".这样的描述其实似是而非,先来看一个例子: interface ICar{     void R

iOS设计模式 - (2)UML类间关系精解

在正式讲设计模式之前, 介绍一下UML类图之间的关系还是非常有必要的, 由于一些教程, 书籍, 包含我之后的文章, 都会大量使用类图, 去描写叙述各个类之间的关系.这是一种非常直观, 简约的方式. 当然, 能力, 精力有限, 这里的UML的介绍也仅仅局限与几种常见的类间关系. 包含: 继承.实现.依赖.关联.聚合.组合 在次之前, 假设看不懂类图, 能够先看一下我之前写的一篇文章 : 具体解释八大UML类图符号的表示法 iOS - UML类间关系精解           by Colin丶 转载

gem5: stats.txt中ReadReq_accesses、ReadExReq_accesses、overall_accesses及demand_accesses间关系

参考:questions on M5 stats.difference between demand and overall accesses 当用gem5中classic memory mode运行测试集后,查看stats.txt,可看到如下结果: system.l2.ReadExReq_accesses::total 12365514 # number of ReadExReq accesses(hits+misses) system.l2.ReadReq_accesses::total 7