增加了buffsize,生产者生产过多,wait #include <stdio.h> #include <unistd.h> #include <pthread.h> #define PRODUCER_SIZE 1 #define CONSUMER_SIZE 1 int products = 0; ...
分类:
其他好文 时间:
2020-02-09 16:28:51
阅读次数:
66
思路: 生产者判读是否大于20: 若 否,则生产一个产品并且唤醒(消费者).若是,则堵塞. 消费者判读是否大于0,若是,则消费一个产品,并唤醒(生产者).若否,则堵塞. 我们将生产和消费的方法,放到店员类,这样可以操作共享数据. package com.LearnJava.Thread; class ...
分类:
其他好文 时间:
2020-02-08 17:20:40
阅读次数:
78
Task task = Task.Run(() => { }); task.GetAwaiter().OnCompleted(() => { }); ...
分类:
其他好文 时间:
2020-02-08 15:48:52
阅读次数:
51
【目的】:图像掩膜的目的很单纯,亮的地方变亮一些,暗的地方变暗一些,公式如下 其实这个公式没什么意思,如果你有好的idea也可以,我们每次定位到中心5的那个地方,乘上5倍,然后减掉周围的像素值,举一个例子,中心是10,上下左右分别是20,30,40,50,你应用公式之后得到的是一个负值,这个时候有一 ...
分类:
其他好文 时间:
2020-02-07 14:36:35
阅读次数:
89
1、这两个方法来自不同的类分别是Thread和Object2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)4、sle ...
分类:
编程语言 时间:
2020-02-07 11:12:30
阅读次数:
84
1、创建状态 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。 2、就绪状态 当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。 ...
分类:
编程语言 时间:
2020-02-06 19:50:21
阅读次数:
113
一、CountDownLatch 场景:主线程需要等待所有子线程执行完毕后再进行汇总 CountDownLatch实现比较简单,继承AQS实现了一个不可重入共享锁Sync 1.不可重入共享锁Sync private static final class Sync extends AbstractQu ...
分类:
编程语言 时间:
2020-02-06 14:54:31
阅读次数:
89
题目: 获取前10个time_wait连接最多的IP地址 答案: netstat -n | grep TIME_WAIT | awk '{print $5}' | uniq -c | sort -nr | head -n10 ...
分类:
系统相关 时间:
2020-02-06 12:31:36
阅读次数:
69
1. 【推荐】高并发服务器建议调小 TCP 协议的 time_wait 超时时间。 说明:操作系统默认 240 秒后,才会关闭处于 time_wait 状态的连接,在高并发访问下,服务器端会因为 处于 time_wait 的连接数太多,可能无法建立新的连接,所以需要在服务器上调小此等待值。 正例:在 ...
分类:
其他好文 时间:
2020-02-05 13:36:20
阅读次数:
85