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)


相关推荐

  • Java考试题30道(附答案)

    Java考试题30道(附答案)1. 在WEB-INF目录下,必须存放的文件为:   BA.class文件B.web.xmlB.jar文件D.html文件2.下面哪个不是JAVA关键字  A  A integer  B double  C float  D default3. 构造函数何时被调用( )  BA.类定义时B.创建对象时C.调用对象方法时D.使用对象的变量时4. 下面哪项不是respons…

  • chrome浏览器对应驱动_chrome手机浏览器

    chrome浏览器对应驱动_chrome手机浏览器chrome浏览器驱动下载地址:http://chromedriver.storage.proxy.ustclug.org/index.htmlchrome浏览器对应的chromesdriver版本如何查看:首先查看chrome浏览器版本:(浏览器设置–关于chrome) 查看与浏览器对应的chromedriver版本(打开chromedriver下载地址,任选一版本打开) 选择下载与ch…

  • vue链接转二维码_vue二维码识别

    vue链接转二维码_vue二维码识别安装npminstallqrcodejs2–save引入&amp;lt;template&amp;gt;&amp;lt;divid=&quot;qrcode&quot;ref=&quot;qrcode&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/template&amp;gt;&amp;lt;scrip

  • exit()和_exit()和return

    exit()和_exit()和return

  • 小波变换原理_小波变换的缺点

    小波变换原理_小波变换的缺点https://www.cnblogs.com/warmbeast/p/7809286.html从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。下面就按照傅里叶–>短时傅里叶变换–>小波变换的顺序,讲一下为什么会出现小波这个东西、小波究竟是怎样的思路。傅里叶变换关于傅…

    2022年10月30日
  • 最中肯的Redis规范全在这了

    最中肯的Redis规范全在这了

发表回复

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

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