展开

关键词

并发的三个

远看并发,并发可以抽象成三个问题: 分工、同步/协作、互斥 如果你已经工作了,那么你一定听说过或者正在应用敏捷开发模式来交付日常的工作任务,我们就用你熟悉的流来解释这三个问题 分工 将当前 /成员变量时,就可能发生不确定性,造成不确定性主要是有可见性、原子性、有序性这三大问题,而解决这些问题的就是互斥 互斥 同一时刻,只允许一个线访问共享变量 来看下图,主干路就是共享变量,进入主干路一次只能有一辆车 同样 Java SDK 也有很多互斥的解决方案,比如你马上就能想到 synchronized 关键字,Lock,ThreadLocal 等就是互斥的解决方案 资本家疯狂榨取劳动工人的剩余价值,获得最大收益 理解三大问题,你要充分合生活中的实际,序中的并发问题,基本上都能在实际生活中找得到原型 下一篇文章的内容,我们就要聊聊,引起线安全的三个问题:「可见性,原子性,有序性」,这涉及到 JMM 的一点内容 ,可以提前了解一下的,这样我们才能更好的碰撞 灵魂追问 工作中多线的场景多吗?

15420

Windows:第11章 Windows线

Github https://github.com/gongluck/Windows-Core-Program.git //第11章 Windows线池.cpp: 定义应用序的入口点。 // #include "stdafx.h" #include "第11章 Windows线池.h" VOID NTAPI SimpleCB( _Inout_ PTP_CALLBACK_INSTANCE bres = IsThreadpoolTimerSet(ptimer); //检查定时器状态 //在内对象触发时调用一个函数 PTP_WAIT pwait = CreateThreadpoolWait (WaitCB, NULL, nullptr); //创建线池等待对象 HANDLE hevent = CreateEvent(nullptr, FALSE, TRUE, nullptr); ); //在异步IO请求完成时调用一个函数 HANDLE hFile = CreateFile(TEXT("第11章 Windows线池.cpp"), GENERIC_READ |

54020
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Windows:第12章 纤

    Github https://github.com/gongluck/Windows-Core-Program.git //第12章 纤.cpp: 定义应用序的入口点。 // #include "stdafx.h" #include "第12章 纤.h" LPVOID g_Covert = nullptr; DWORD g_index = 0; VOID WINAPI FiberFun(LPVOID lpFiberParameter) { //纤参数 LPVOID pFiberCurrent = GetCurrentFiber(); BOOL In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { //将线转换为纤 ); //解除线的纤状态 bres = ConvertFiberToThread(); system("pause"); return 0; }

    39820

    Windows:第4章 进

    Github https://github.com/gongluck/Windows-Core-Program.git //第4章 进.cpp: 定义应用序的入口点。 dir); delete[] dir; dir = nullptr; dir = new TCHAR[_MAX_PATH]; GetFullPathName(TEXT("Windows .sln"), _MAX_PATH, dir, nullptr);//不好用,但这个函数可以获取每个驱动器对应的当前目录~ delete[] dir; dir = nullptr PROCESS_INFORMATION pi; TCHAR processcmd[] = TEXT("README.TXT"); BOOL bret = CreateProcess(TEXT("C:\\WINDOWS , nullptr, nullptr, &si, &pi); //此时进引用计数==2 ResumeThread(pi.hThread); TerminateProcess

    37630

    Windows:第13章 内存体系

    Github https://github.com/gongluck/Windows-Core-Program.git //第13章 内存体系构.cpp: 定义应用序的入口点。 // #include "stdafx.h" #include "第13章 内存体系构.h" int APIENTRY wWinMain(_In_ HINSTANCE hInstance,

    23040

    Windows:第3章 内对象

    Github https://github.com/gongluck/Windows-Core-Program.git //第3章 内对象.cpp: 定义应用序的入口点。 // #include "stdafx.h" #include "第3章 内对象.h" int APIENTRY wWinMain(_In_ HINSTANCE hInstance, "), MB_OK); HANDLE hMutex3 = OpenMutex(MUTEX_ALL_ACCESS, TRUE, TEXT("有名的Mutex")); //灵活的(跨进) FALSE, DUPLICATE_SAME_ACCESS); CloseHandle(hMutex);//调用CloseHandle后,句柄表中的对应值就被重置了,hMutex不会指向原来的内对象

    12220

    java多线技术——第四章

    在使用notify()/notifyAll()方法进行通知时,被通知的线是由JVM随机选择的,但使用ReentrantLock合Condition类是可以实现前面介绍过的“选择性通知”,这个功能是常用 但是若想实现只唤醒部分线,只能使用多个Condition对象了,这也就是Condition对象可以唤醒部分指定线,提高序运行效率。 比如有5个线,一个线先执行await()方法,那么在调用getQueueLength()方法后返回值是4,说明有4个线同时在等待lock的释放。    本章:   本章用Lock来替换掉了synchronized关键字。   Lock很重要,重要到什么度?很多并发包的源码都是通过Lock实现的。 可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,成意足,等待您的评价。

    37360

    java多线技术——第五章

    可以看出空参构造的作用:创建一个Timer就是启动一个新的线,而且这个新线并不是守护线一直运行。   使用另一种构造,则可以获取守护线: ? 使用scheduleAtFixedRate方法,如果执行任务没有被延时,那么下一次任务的执行时间参考的是上一次任务的“束”的时间计算的。    延时的情况则没有区别,也就是说如果两者都被延时,那么都已上一次任务束的时间计算。 注:schedule不具有追赶性。   scheduleAtFixedRate具有追赶性。    实际上Spring通过了注解实现定时器,会找时间对其进行的。   注解式定时器——SpringTask的实现(未完成) 本文内容是书中内容兼具自己的个人看法所成。 可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,成意足,等待您的评价。

    26290

    java多线技术——第三章

    Blocked状态束后,进入Runnable状态,等待系统重新分配资源。     出现阻塞的情况大体分为以下5中:       线调用sleep()方法,主动放弃占用的处理器资源。        线调用suspend()方法将该线挂起,此方法容易死锁,尽量避免使用。   4)run()方法运行束后进入销毁阶段,整个线执行完毕。     1.10等待wait的条件发生变化 若wait等待的条件发生了变化,也容易造成序逻辑的混乱。 这个是合到具体的逻辑判断与数据删减的情况才会涉及到。 ,但是若主线先于子线,且想获得子线中的值时,就需要join方法,作用:等待线对象毁灭 2.1学习方法join前的铺垫  场景实例: ? 可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,成意足,等待您的评价。

    378100

    java多线技术——第二章

    所以要想实现同步效果,必须是多个线访问同一个实例中的变量才能够实现。若出现多个线访问多个实例中的同步方法,自然会发现果是异步的。 2.8细化论证3个论 三个论:   当多个线同时执行synchronized(x){}同步代码块时呈同步效果   当其他线执行x对象中的synchronized同步方法时呈同步效果   当其他线执行 死锁是序设计的bug,在设计序的过中要避免出现互相持有对方锁的情况。   死锁出现的:存在互相等待对方释放锁就有可能出现死锁。 第二小节小:实际上第二章后半部分一直在针对不用的使用情况去印证前面已经证实过的论(也就是说没有太多卵用,的东西都在前八个知识点)。 可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,成意足,等待您的评价。

    280100

    java多线技术——第六章

    //此代码版本为立即加载 //此代码版本缺点:是不能有其他实例变量 //因为getInstance()方法没有同步 //所以可能出现非线安全问题 singleton; private Singleton(){} public static Singleton getInstance() { //延迟加载,若多个线在此 Singleton(); } return singleton; } }   可以使用synchronized方法或者synchronized同步代码块解决多线中的同步问题 双检查锁的安全性问题(未完成) 3.0使用静态内置类实现单例模式 public class Singleton { //内部类形式 private static class MyHanlder 可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,成意足,等待您的评价。

    28360

    Windows:第5章 作业

    Github https://github.com/gongluck/Windows-Core-Program.git //第5章 作业.cpp: 定义应用序的入口点。 ,如下代码是返回TRUE,无论是从VS中启动调试还是从资源管理器中启动。 //原来,从资源管理器或者VS中启动序时,系统会自动把该进放到一个作业(Job)中。知道了这一点,要想让这段代码返回FALSE,只要从CMD中启动该序即可。 UI限制的用户对象的句柄的权限.当授予了访问权限,所有相关联的进都可以在随后识别和使用这个句柄.当访问被拒绝,该进不能在使用该句柄. }; bret = CreateProcess(TEXT("C:\\WINDOWS\\SYSTEM32\\NOTEPAD.EXE"), nullptr, nullptr, nullptr, FALSE

    44910

    Windows:第6章 线基础

    Github https://github.com/gongluck/Windows-Core-Program.git //第6章 线基础.cpp: 定义应用序的入口点。 // #include "stdafx.h" #include "第6章 线基础.h" #include <process.h> //线函数 DWORD WINAPI ThreadProc(PVOID _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { //创建Windows (例如没有调用线里类实例的析构函数!) (记住:句柄表属于进,线共享句柄表) bret = DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess

    24750

    DOM的

    但是文档流执行完毕,则它会导致页面全部重绘 innerHTML 是将内容写入某个DOM节点,不会导致页面全部重绘 innerHTML 创建多个元素效率更高(不要拼接字符串,采取数组形式拼接),构稍微复杂 createElement() 创建多个元素效率稍低一点点, 但是构更清晰 :不同浏览器下,innerHTML 效率要比creatElement 高    <script>         array.join('');        var d2 = +new Date();        console.log(d2 - d1);   }    fn(); </script> 3、 DOM的 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言 (HTML或者XML)的标准接口。 W3C已经定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容、构和样式。 ? 关于dom操作,我们主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。 3.1.

    17330

    DOM的

    DOM的 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言 (HTML或者XML)的标准接口。 W3C已经定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容、构和样式。 ? 关于dom操作,我们主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。 1.1.

    13031

    DOM的

    DOM的 文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言 (HTML或者XML)的标准接口。 W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、构和样式。 1. 对于JavaScript,为了能够使JavaScript操作HTML,JavaScript就有了一套自己的dom接口。 2. 对于HTML,dom使得html形成一棵dom树.  事件操作(重点) 给元素注册事件, 采取  事件源.事件类型 = 事件处理

    7130

    Windows:第1章 错误处理

    Github https://github.com/gongluck/Windows-Core-Program.git //第1章 错误处理.cpp: 定义应用序的入口点。

    19630

    Windows第一章.错误处理

    Windows第一章,错误处理. 一丶错误处理 1.学习 不管是做逆向,开始做开发.在Windows下.你都需要看一下这本书.这本书确实写得很好.所以自己在学习这本书的同时,也把自己所学的知识进行 ,以及巩固. 2.常见的Windows函数返回类型 数据类型 作用 VOID 如果是Void表示函数不可能失败.极少数windows函数会返回void BOOL 表示这个函数会有失败情况.0失败.否则就是非 ,你可以在监视窗口输入 @err,hr 这个命令.那么序在调试的时候会自动获取API的错误代码. MSDN上有介绍GetLastError配合ForMatMessage来打印错误代码. 5.错误代码查找工具的使用 VS译器还提供了了错误代码查看工具.我们可以输入那么就会显示错误代码代表的什么意思.

    25520

    java多线技术——第一章 1.5sleep()方法

    在早期面向进设计的计算机构中,进序的基本执行实体;在当代面向线设计的计算机构中,进是线的容器。序是指令、数据及其组织形式的描述,进序的实体。 return;可以束方法的执行。 优先级具有随机性:       随机性意味着优先级高的线不一定是能优先执行完。 优先级越高的线执行速度越快。 任何一个守护线,都是JVM中所有的非守护线的保姆,只要当前JVM实例中存在任何一个非守护线,且没有束,守护线就在工作,只有当最后一个非守护线束时,守护线才随着JVM一同束工作。    可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,成意足,等待您的评价。

    370100

    Kubernetes概念

    3、Replication Controller   Replication Controller(RC)是Kubernetes中的另一个概念,应用托管在Kubernetes之后,Kubernetes 5、Service   为了适应快速的业务需求,微服务架构已经逐渐成为主流,微服务架构的应用需要有非常好的服务排支持。 Kubernetes中的要素Service便提供了一套简化的服务代理和发现机制,天然适应微服务架构。 Service的目标是提供一种桥梁, 它会为访问者提供一个固定访问地址,用于在访问时重定向到相应的后端,这使得非 Kubernetes原生应用序,在无须为Kubemces写特定代码的前提下,轻松访问后端 只要Pod 存在,EmpyDir数据卷都会存在(容器删除不会导致EmpyDir数据卷丟失数据),但是如果Pod的生命周期终(Pod被删除),EmpyDir数据卷也会被删除,并且永久丢失。

    29810

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券