我是一个线程(中)

多线程,两个线程写,一个线程读 多线程,两个线程写,一个线程读,读完删除,(读完删除,再写(注释掉的部分),当两个写的线程没有写,就读的线程一直读写删) 1、采用thread类 #include <iostream> #include <thread> #include <Windows.h> #include <mutex> using namespace std; mutex mu; //线程互斥对象 struct A1 { int a; strin 阅读详情

接上篇《我是一个线程(上)》, 回复“我是一个线程” 查看

平淡的日子就这么一天天过去, 作为一个线程, 我每天的生活都是取包裹,处理包裹,然后回到我们昏暗的家:线程池。

有一天我回来的时候, 听到有个兄弟说, 今天要好好休息下,明天就是最疯狂的一天。 

我看了一眼日历,明天是 11月11号 。 

果然,零点刚过,不知道那些人类怎么了, 疯狂的投递包裹, 为了应付蜂拥而至的海量包裹, 线程池里没有一个人能闲下来,全部出去处理包裹,CPU车间利用率超高,硬盘在嗡嗡转, 网卡疯狂的闪,  即便如此, 还是处理不完,堆积如山。

我们也没有办法,实在是太多太多了, 这些包裹中大部分都是浏览页面,下订单,买,买,买。

不知道过了多久, 包裹山终于慢慢的消失了。

终于能够喘口气, 我想我永远都不会忘记这一天。

通过这个事件,我明白了我所处的世界:这是一个电子商务的网站!

我每天的工作就是处理用户的登录,浏览, 购物车,下单,付款。

我问线程池的元老0x6900 : " 我们要工作到什么时候?"

" 要一直等到系统重启的那一刻", 0x6900 说

" 那你经历过系统重启吗?"

" 怎么可能? , 系统重启就是我们的死亡时刻, 也就是世界末日,一旦重启, 整个线程池全部销毁,时间和空间全部消失,一切从头再来”

" 那什么时候会重启?"

" 这就不好说了,好好享受眼前的生活吧....."

其实生活丰富多彩, 我最喜欢的包裹是上传图片,由于网络慢,所以能在就绪车间, CPU车间待很长很长时间,可以认识很多好玩的线程。

比如说上次认识了memecached 线程,他给我说通过他缓存了很多的用户数据, 还是分布式的! 很多机器上都有!

我说怪不得后来的登录操作快了那么多, 原来是不再从数据库取数据了你那里就有啊, 哎对了你是分布式的你去过别的机器没有?


他说怎么可能我每次也只能通过网络往那个机器发送一个GET, PUT命令才存取数据而已, 别的一概不知。

再比如说上次在等待的时候遇到了数据库连接的线程, 我才知道它他那里也是一个连接池, 和我们线程池几乎一模一样。

他说有些包裹太变态了,竟然查看一年的订单数据, 简直把我累死了。

我说拉倒吧你, 你那是纯数据, 你把数据传给我以后,我还得组装成HTML,  工作量不知道比你大多少倍。

他说一定你要和memecached搞好关系,直接从他那儿拿数据,尽量少直接调用数据库, 我们JDBC connection也能活的轻松点。

我说好啊好啊, 关键是你得提前把数据搞到缓存啊, 要不然我先问一遍缓存, 没有数据, 我这不还得找你吗?

生活就是这样, 如果你自己不找点乐子,还有什么意思?

有一天我遇到一个可怕的事情, 差一点死在外边,回不了线程池了......

(未完待续)

------------------------------------------------------------------------------

“码农翻身” 公共号(coderising) : 由工作15年的前IBM架构师创建,分享编程和职场的经验教训。


回复下面的关键字,查看更多文章

牛人 键盘侠 留学 读书 调试 烂代码 小白 培训

数据结构 代码腐化 无聊 迷茫 刚工作 死锁 简历  

HTTP Session XML AJAX TOMCAT 反射 JUnit

开源 职业发展  假如我是老师  学习Java  外包

自学  OO  我是一个线程

长按二维码, 关注"码农翻身"

0?wx_fmt=jpeg

Win11专业版破解RDP限制:实现多用户远程桌面协同办公 本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。 阅读详情

相关推荐

机器学习ROC曲线中的阈值thresholds

在ROC曲线上的不同点对应于不同的阈值。根据任务的具体要求,可以选择合适的阈值,以达到平衡召回率和误报率,或者根据具体应用场景调整模型的工作点。,表示样本属于正例的概率。这个概率值可以被截断为二元分类的决策,通过选择一个阈值来决定样本是被分类为正例还是负例。通过改变阈值,可以得到不同的真正例率(TPR)和假正例率(FPR),从而绘制出ROC曲线。总体来说,ROC曲线提供了模型在不同阈值下的性能综合情况,帮助分析模型的分类能力。通常来说,随着阈值的增加,TPR会减小,而FPR会增加。ROC曲线的绘制涉及。

行子的博客 3656

我是一个线程(修订版)

第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较...

码农翻身 852

思科路由器、交换机组网实验报告

通过思科模拟器搭建路由交换网络

ghj528的博客 1335

我是一个线程

简单易懂讲线程 来自:码农翻身(微信号:coderising) 作者:IBM刘欣

mon_star的博客 486

STM32F4与LAN8720硬件连接避坑指南:从原理图到RMII信号完整性的实战解析

本文深入解析了STM32F4与LAN8720以太网连接的硬件设计要点与常见陷阱。重点剖析了电源上电时序、复位电路设计、RMII接口配置等关键环节,并提供了从原理图设计到PCB布局、信号完整性调试的完整实战指南,帮助硬件工程师规避设计风险,确保以太网通信的长期稳定运行。

weixin_29189003的博客 213

6.4 构网型储能的需求与配置

摘要: 构网型储能是新型电力系统的关键支撑技术,通过提供电压/频率形成、惯性和稳定控制能力,解决同步机退出导致的系统稳定性问题。其配置需遵循三大原则:1)容量配置以支撑需求为主导,兼顾能量服务;2)优先布局于电网薄弱点、稳定问题突出区域;3)采用自适应控制策略实现全工况优化。核心应用场景包括新能源送出通道稳定、负荷中心调频、黑启动电源等。规划方法需结合系统分析、量化指标和成本效益评估,实现技术经济最优。未来需重点关注构网/跟网混合系统的临界容量占比及自适应控制技术发展。

技术工作者 1141

java 在一个线程中启动另一个线程_JAVA:在一个线程中启动另外一个线程

##常见package hellojava;import java.util.logging.Level;import java.util.logging.Logger;public class HelloJava {static class TestTask implements Runnable {private String taskName;public TestTask(String t...

weixin_42360285的博客 2045

【1.2】Costas环的基本原理概述

Costas环是一种用于载波恢复的相干解调技术,可直接从BPSK等抑制载波信号中恢复本地载波并完成解调。其核心结构包含同相/正交双支路处理,通过混频、低通滤波后,利用I/Q支路信号乘积进行相位误差检测,经环路滤波器调节VCO输出频率,实现载波同步。课程将重点讲解Costas环的MATLAB仿真实现、系统性能分析及FPGA开发,包括信号产生、频偏模拟、滤波器设计等模块,并通过AWGN信道和不同频偏条件下的测试验证系统性能。该技术无需单独提取载波,在数字通信系统中具有重要应用价值。

fpga/matlab/simulink算法仿真工程 452

线程问题—一个线程怎么调出另外一个线程的结果。

问题:建两线程,线程1进行计算1*1+~+99*99,线程2打印出线程1名字,每隔段时间读取一次线程1的计算结果? 1 public class Other{ 2 public static volatile int sum; 3 public static void main(String[] args){ 4 Thread t...

aixirang3421的博客 516

异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案

异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案 简单统计法: 这个原则有个条件:数据需要服从正态分布。 在3倍标准差原则下,异常值如超过3倍标准差,那么可以将其视为异常值。正负3的概率是99.7%,那么距离平均值3之外的值出现的概率为P(|x-u| > 3) <= 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。 分位数法(箱图法、箱型法): 并不是说从高斯分布中抽出的所有数据都符..

data+scenario+science+insight 1796

【Mode】微带传输线阻抗

微带线,英文名称为 (Microstrip) 是一种常见的平面传输线,主要用于传输微波频率信号(通常在射频和微波电路重中使用)。

u011699626的博客 245

两个线程,一个线程输出1,一个线程输出2,循环输出

/** * 两个线程,一个线程输出1,一个线程输出2, * * @author ffr@cnic.cn * */ public class SleepAndWaitThread2 { public static void main(String[] args) { OneThread one = new OneThread(); TwoThread two = new Tw

专注 7973

智驾车载以太网(18)-switch之报文转发和vlan处理流程

本文详细解析了交换机中报文处理和转发流程:1)通过目标MAC查找转发端口,源MAC创建ARL条目;2)VLAN标签处理包括tagged/untagged帧判断、默认VID标记等5种处理方式;3)完整转发流程包含CRC校验、IQ封装、VLAN和ARL表查询、端口向量计算及优先级队列发送。文中还涉及TCAM修改VLAN、802.1q多种模式处理等细节,省略了流量控制等次要流程。该过程实现了基于MAC和VLAN的高效二层交换。

mitugaoyang1993的博客 44

从一个线程中给另一个线程发送通知

当需要线程等待某个事物时,可以创建一个condition对象,然后通过这个对象来通知那些等待的线程。 #include #include #include #include #include #include class Request { }; // A simple job queue class; don't do this, use std::q

fkfang的专栏 2898

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java使用一个线程监控另一个线程

// java使用一个线程监控另一个线程 // 这里写的是例子,实际应用是一个线程监控主线程某个属性的值 // 当值发生改变时,做出相应的业务逻辑 public class B extends Thread { static int num = 1; public static void main(String[] args) throws Exception { B thread = new B(); thread.start(); whi

qq_37739437的博客 1917

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C#在一个线程中操作另一个线程的控件

C#在一个线程中操作另一个线程的控件本文摘自:拾金者(http://www.xkde.com) 详细出处参考:http://www.xkde.com/ComContent-149-7466.aspx默认情况下,C#不允许在一个线程中直接操作另一个线程中的控件,这是因为访问windows窗体控件本质上不是线程安全的.如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态.

sx811125的专栏 2122

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

一个http请求就是一个线程吗?Java的服务是每收到一个请求就新开一个线程来处理吗?

一个http请求就是一个线程吗? 答案是:是,一个http请求,就是一个线程。 tomcat连接数线程数 java的服务是每收到一个请求就新开一个线程来处理吗?tomcat呢? 总结 http请求,就是来银行办理业务的用户。tomcat,就是银行。一个线程,就是开辟一个窗口。 线程是共享cpu的,那么多线程比单线程,能提升处理速度吗? 好比,一个窗口(一个cpu),三个人来办理业务。单线程:一个办完一个办。多线程:大家轮着办,我一会给你办,你会儿给他办。 但是单线程,..

拯救世界的光太郎 1万+

Android一个APP里面最少有几个线程

这个线程是否也是每个进程所必须包含的线程。后来我查看了一下Daemons创建的过程,能确定的是Android启动一个APP最少包含ReferenceQueueDaemon线程、FinalizerDaemon线程、FinalizerWatchdogDaemon线程、HeapTaskDaemon线程,以及在ActivityThread中开启的主线程。的源码发现 startHeapTaskProcessor()、runHeapTasks()均是native方法。页面的工程,线程包含以下的这些。

猿小蔡的博客 2220

多线程 一个线程控制另一个线程

多线程 一个线程控制另一个线程 要求: (1)在main方法中启动两个线程 (2)第1个线程循环随机打印100以内的整数 (3)直到第2个线程从健盘读取了“Q”命令。 /* (1)在main方法中启动两个线程 (2)第1个线程循环随机打印100以内的整数 (3)直到第2个线程从健盘读取了“Q”命令。 */ public class Homework01{ public static void main(String[] args){ A a = new A(); B b = new B(a

weixin_43806049的博客 1561

c++一个线程发消息到另外一个线程_自己实现一个简单的线程池

文章来源:https://blog.youkuaiyun.com/qq877728715/article/details/107632454一.本文目的自己动手写一个的线程池,同时会了解到线程池的工作原理,以及如何在工作中合理的利用线程池。二.对线程池的认识线程池是什么线程池的概念是初始化线程池时在池中创建空闲的线程,一但有工作任务,可直接使用线程池中的线程执行工作任务,任务执行完成后又返回线程池中...

weixin_39817176的博客 1005

一个线程控制另一个线程的暂停或启动

MainTest类中可以控制线程的暂停或继续运行。 public class MainTest { /** * 这个线程操作另一个线程的暂停或开始 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Thread1 th1 = new T

ShyBoyes的专栏 6672

同一线程组下的线程,一个线程的异常会影响其他线程运行么?

测试demo: public class Test { static class MyThread extends Thread { private String number; public MyThread(ThreadGroup group, String name, String number) { super(group, name); this.number = number; }

硅脂味咖啡的博客 3466

线程问题:通过另一个线程中断一个线程

本次难点,在线程b中需要想到通过构造方法传入a参数,对a的loop进行修改达到暂停a线程的功能。System.out.println("请输入(Q)表示退出" );System.out.println("B线程退出" );

pomelo_wang的博客 132

一个线程操作另一个线程的控件

一般来说,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。 现在用一个用线程控制的进程条来说明,大致的步骤如下:1. 创建Invoke函数,大致如下:       

星空灿烂 837
上一篇: 我是一个线程(上)
下一篇: 我是一个线程(下)
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值