并发编程
文章平均质量分 81
HELLO_ZTY
总结自己学习过程中的难题,问题,谢谢大家的阅读
展开
-
关于monitor
想象一下,你住在一个宿舍,这个宿舍有一个公共浴室,这个浴室相当于一个方法或者一个代码块。由于只有一个浴室,所以每次只能有一个人使用。如果有人正在使用,其他人就必须等待。这个浴室就像Java中的一个monitor,而每个想要使用浴室的人就像一个线程。在Java中,我们使用来声明一个方法或者一个代码块是“同步”的,就像我们制定一个规则,每个人在使用浴室之前都必须敲门询问是否可进。如果浴室空闲,那么这个人就可以进去,并且锁住门,这样其他人就不能进去。这个人就像一个线程获得了。原创 2024-05-29 18:58:11 · 312 阅读 · 0 评论 -
关于什么是线程安全以及实现线程安全的方案
在多个线程同时执行同一段代码或者操作同一个共享变量时,和多个线程排队串行执行的预期的结果一样,共享变量的值也和预期的一样,那就是线程安全。原创 2024-05-29 12:31:09 · 828 阅读 · 0 评论 -
如何设计一个能够支持高并发的系统
例如,将共享资源拆分为多个独立的资源,每个请求只操作自己的资源,避免冲突。采用集群部署的模式,将一个服务通过集群进行部署,来提升系统整体的吞吐量及响应速度,并使用负载均衡技术将请求均衡分配给多个服务器,以提高系统的性能和可用性。当数据量巨大时,还可以进行分库分表,将大量的读写操作分散到多个数据库或表中,减轻单个数据库(表)的读写压力,从而提高系统的并发度和响应速度。还可以通过读写分离,主库主要负责写操作,从库则负责读操作,从而提高了系统的并发度和可扩展性,以及系统的可用性和容错能力。原创 2024-05-28 15:07:38 · 1552 阅读 · 0 评论 -
JAVA领域的两种线程
在JAVA领域中,线程有两种定义:操作系统线程和JAVA线程,它们在基本概念上是相似的,但具体的状态和状态转换可能会有所不同,这主要是因为Java是跨平台的,它的线程模型需要在所有支持的操作系统上保持一致。操作系统的线程是操作系统内核调度的最小执行单位,它是进程的一部分。进程是一个正在执行的程序实例,而线程是进程内的一个独立执行路径。操作系统的线程负责执行进程中的指令,进行计算和操作,同时也负责管理线程的上下文切换、同步和资源分配等。操作系统线程的创建、销毁和调度都由操作系统负责。原创 2024-05-25 18:21:46 · 499 阅读 · 0 评论 -
关于进程和线程的上下文
当进程切换后页表也要进行切换,页表切换后CPU中的TLB就失效了,失效导致映射的命中率降低,那么虚拟地址转换为物理地址就会变慢,表现出来的就是程序运行会变慢。每个进程处于安全性的原因,不能直接操作物理内存,所以在运行时都有自己的虚拟内存地址空间,这个空间是由操作系统提供的,它包括了进程需要访问的所有内存地址。过多的线程并行执行会导致CPU资源的争抢,产生频繁的上下文的保存和加载导致CPU资源的浪费,常常表现为高并发执行时,接口响应速度延长。对于线程切换,第1步是不需要做的,第2步是进程和线程切换都要做的。原创 2024-05-25 18:14:56 · 443 阅读 · 0 评论