
多线程核心技术
文章平均质量分 71
贺公子之数据科学与艺术
科技向善,拥抱开源,要用技术的影响力来领导人,而不是威权和职位!
展开
-
【实现MPG模式GoLang版】
在这个例子中,创建了一个任务通道(tasks)和一个结果通道(results)。worker函数从任务通道中接收任务,判断任务是否为素数,如果是素数则将结果发送到结果通道中。sendTasks函数不断地生成任务并发送到任务通道中。MPG(Message Passing Game)模式是一种并发模式,它将问题分解成多个任务,并通过消息传递来实现任务之间的通信。通过MPG模式,我们可以将计算任务分布到多个worker中并行执行,提高了程序的性能和效率。欢迎关注微信公众号:数据科学与艺术。原创 2024-07-21 00:06:11 · 320 阅读 · 0 评论 -
linux redis 写不进数据
Redis实例已满:如果Redis的最大内存设置已经达到,并且Redis已经启用了淘汰策略(例如LRU或最少使用),那么当Redis尝试写入更多数据时,将会删除一些已有的数据。配置问题:请检查Redis的配置文件,确保Redis实例正在监听正确的端口,并且配置文件中的保存路径正确。内存问题:如果Redis的内存使用已经达到了设置的上限,那么Redis将无法写入更多的数据。权限问题:请确保Redis进程有足够的权限来写入数据。命令来查看Redis的内存使用情况。命令来查看Redis的保存路径。原创 2024-04-10 14:31:00 · 134 阅读 · 0 评论 -
【Redis】-多服务器获取redis和设置redis并发问题-哨兵模式
在执行事务期间,其他服务器的操作将被排队等待。总之,在多服务器环境下,要正确处理并发访问Redis的问题,需要考虑使用合适的锁机制、事务处理和分布式缓存工具等技术手段,以确保数据的一致性和可靠性。一种用于高可用性的Redis部署方案,它可以在主节点宕机时自动将从节点晋升为新的主节点,确保系统的可用性。当主节点宕机时,哨兵节点会自动触发故障转移过程,将一个从节点提升为主节点。观察哨兵节点的日志文件,确认哨兵节点已经自动将从节点晋升为新的主节点。注意:在启动哨兵节点之前,需要先启动Redis主节点和从节点。原创 2024-04-10 14:30:07 · 1172 阅读 · 0 评论 -
【设计一个分布式容错性和可恢复性的系统】
总而言之,通过考虑容错性和可恢复性的设计原则、使用合适的技术和工具,可以提高分布式系统的稳定性和可靠性,减少故障对系统的影响。原创 2024-02-19 17:30:37 · 420 阅读 · 0 评论 -
Java 多线程
interrupted与isInterrupted的区别interrupted():测试当前线程是否已经是中断状态,执行后具有状态标志清除为false的功能。 isInterrupted():测试线程Thread对象是否已经是中断状态,但不清除状态标志。 方法:public static boolean interrupted() { return currentThread().i原创 2017-11-09 16:40:04 · 296 阅读 · 0 评论 -
线程池
Java 线程池的作用 现在服务器端的应用程序几乎都采用了“线程池”技术,这主要是为了提高系统效率。因为如果服务器对应每一个请求就创建一个线程的话,在很短的一段时间内就会产生很多创建和销毁线程动作,导致服务器在创建和销毁线程上花费的时间和消耗的系统资源要比花在处理实际的用户请求的时间和资源更多。线程池就是为了尽量减少这种情况的发生。下面我们来看看怎么用Java实现一个线程池。一个比较简单的线程池至原创 2017-12-20 14:36:53 · 164 阅读 · 0 评论 -
消息队列
消息队列中间件、分布式面向对象中间件和事务处理中间件等。 消息队列服务是一种松耦合的分布式应用集成形式。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无需等待;二者的生命周期未必相同;发送消息的时候接收者不一定运行,接收消息的时候发送者也不一定运行;一对多通信:对于一个消息可以有多个接收者。消息队列中间件最重原创 2017-12-20 14:39:47 · 296 阅读 · 0 评论 -
Java中的阻塞队列
什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法: 方法\处理方式原创 2017-11-24 16:53:24 · 285 阅读 · 2 评论 -
远程调用过程
远程调用过程如下首先:消费者和生产者spring容器初始化的时候,会根据配置的的api在RabbitMQ上建立相应的队列,消费者会监听相关队列1)生产者(client)调用以本地调用方式调用服务;2)client 接收到调用后通过Hessian将方法、参数等组装成能够进行网络传输的消息体;3)client 通过代理类,执行invoke方法,统一将消息发送到MQ监听的服务端;4)server 收到消息原创 2017-12-21 11:04:23 · 327 阅读 · 0 评论