SynchronousQueue用例「建议收藏」

SynchronousQueue用例「建议收藏」SynchronousQueue是无缓冲区的阻塞队列,即不能直接向队列中添加数据,会报队列满异常,如下所示:importjava.util.concurrent.SynchronousQueue;publicclassSynchronousQueueExp{ publicstaticvoidmain(String[]args){ SynchronousQueu…

大家好,又见面了,我是你们的朋友全栈君。

SynchronousQueue是无缓冲区的阻塞队列,即不能直接向队列中添加数据,会报队列满异常,如下所示:

import java.util.concurrent.SynchronousQueue;

public class SynchronousQueueExp {
	
	public static void main(String[] args) {
		SynchronousQueue<String> sq=new SynchronousQueue<>();
		String str="aaa";
		sq.add(str);
	}
}

SynchronousQueue用例「建议收藏」

必须在有消费者阻塞等待时生产者才可以向队列中添加数据,这时由阻塞状态的消费者直接获取,相当于没有向队列中添加数据,直接将数据交给了消费者。

import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.TimeUnit;

public class SynchronousQueueExp {
	
	public static void main(String[] args) {
		final SynchronousQueue<String> sq=new SynchronousQueue<>();
		/*String str="aaa";
		sq.add(str);*/
		Thread t1=new Thread(new Runnable() {
			@Override
			public void run() {
				try {
					while (true) {
						System.out.println("消费者阻塞等待获取数据...");
						System.out.println("消费者消费数据:"+sq.take());
					}
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		},"t1");
		
		Thread t2=new Thread(new Runnable() {
			@Override
			public void run() {
				sq.add("bb");
			}
		},"t2");
		
		t1.start();
		try {
			TimeUnit.SECONDS.sleep(2);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		t2.start();
	}
}

SynchronousQueue用例「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152126.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ubuntu安装vscode的两种方法_linux vscode

    ubuntu安装vscode的两种方法_linux vscode1、vscode官网下载.deb文件:https://code.visualstudio.com/解决Vscode下载慢的问题官网的下载链接,替换az764295.vo.msecnd.net为vscode.cdn.azure.cn例如:原始下载链接:https://az764295.vo.msecnd.net/stable/3a6960b964327f0e3882ce18fcebd07ed191b316/code_1.62.2-1636665017_amd64.deb替换为:https://

  • navicat premium 15 激活码_在线激活

    (navicat premium 15 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • vue(18)路由懒加载「建议收藏」

    vue(18)路由懒加载「建议收藏」什么是路由懒加载官方的解释:当打包构建应用时,JavaScript包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更

  • 组织切片技术的原理(黄瓜怎么切片)

    第一种切片机制——FileInputFormat1.切片的机制1.切片的机制简单地按照文件的内容长度进行切片切片大小,默认等于Block大小切片时不考虑数据集整体,而是逐个针对每一个文件单独切片…

  • Charles抓包神器

    Charles抓包神器Charles抓包神器Charles抓包过程插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接…

  • 折扣计算公式「建议收藏」

    折扣计算公式「建议收藏」$price=$row['price'];//原价$nowprice=$row['nowprice'];//现价$jiesheng=$price-$nowpri

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号