首页 文章
  • 4 votes
     answers
     views

    等待/通知的奇怪java行为

    我发现java并发的奇怪行为 . 请参阅下面的代码: public class Test { static CountDownLatch latch = new CountDownLatch(1); public static void main(String[] args) throws UnsupportedEncodingException, Interrup...
  • 20 votes
     answers
     views

    如何通过线程访问Runnable对象?

    可能重复:need-help-returning-object-in-thread-run-method 你好 . 我有一个实现runnable的类,我有一个List,存储用该类的不同对象实例化的Threads . 在线程对象运行它们的情况下,如何访问底层对象的属性?这是一个例子: public class SO { public static class TestRunnable imp...
  • 0 votes
     answers
     views

    nodejs如何处理更多的并发请求?

    我一直在阅读 apache 和 nodejs 之间的以下论点,我不明白 . Apache 是基于线程和进程的 i.e 每个请求由一个单独的线程或进程(取决于配置)处理,这意味着如果进程正在等待I / O,则整个线程被阻塞 . 我在这里放了什么?我也会在运行nodejs时等待,即使它意味着异步等待 . 不是吗? 每个 nodejs 实例都在一个线程中运行,并且由于其异步性质,与 apache 相...
  • 0 votes
     answers
     views

    每个Java Future控制其生命周期的核心

    我正在使用web3j库在Java中为以太坊区块链开发一个Load Test应用程序 . 此库中使用的特定函数,异步发送事务,并返回Future对象 . 该库提供了许多功能,这些功能最初满足我对应用程序开发的所有需求 . 但是,在设计和重新设计负载测试应用程序之后,我注意到了一个问题 . 我只能同时部署N个Futures,其中N是我机器上可用内核的数量 . 这是非常低效的,因为每个事务至少需要10秒...
  • 0 votes
     answers
     views

    并行汇总数组

    我有以下算法来总结数组的元素: // global index = 0 array = [...] total_sum = 0 // this is what we're interested in // per thread thread_sum = 0 mutex.lock() while (index < array.size) { mutex.unlock() threa...
  • 0 votes
     answers
     views

    是否有使用线程池的std :: async实现?

    标准函数std::async: 模板函数async异步运行函数f(可能在一个单独的线程中,它可能是线程池的一部分)并返回一个最终将保存该函数调用结果的std :: future . 有两个发布政策std::launch::async and std::launch::deferred . 在我的编译器( GCC 6.2 )标准库中,第一个总是创建一个新线程,第二个在调用线程上进行延迟评估 . ...
  • 2 votes
     answers
     views

    在Go中,从并发可访问的结构中检索后,哪些数据类型可以安全地读取和写入?

    可能不清楚问题本身我在这之后是什么,所以让我澄清一下 . 作为并发练习,我正在编写一个需要多个同时请求可访问的缓存 . 缓存内容的类型为interface {},因此它可以包含任何内容,包括切片,贴图和结构 . 当我使用Get方法获取某些东西时,我在读取它时对其进行RLock,然后返回内容并使用延迟的RUnlock完成 . 这适用于数字和字符串以及返回时自动复制的任何其他值 . 但是我担心切片,贴...
  • 0 votes
     answers
     views

    存储有关CUPS打印作业的元数据的选项?

    我正在编写一个打印系统,在CUPS上放置一个简化的界面 . 用户将作业放入一个队列,系统以各种方式处理它们(统计,页面配额等),然后为用户提供Web界面以将作业分派给多个打印机之一 . 由于可能有多个用户信息亭,管理站等,我需要将作业元数据存储在可以处理并发访问的内容中 . (你能称之为“重入”数据结构吗?)我能想到的一些选择 一个MySQL数据库:大量过度杀伤,但肯定是稳定和支持的 元...
  • 317 votes
     answers
     views

    Java 8并行流中的自定义线程池

    是否可以为Java 8 parallel stream指定自定义线程池?我找不到任何地方 . 想象一下,我有一个服务器应用程序,我想使用并行流 . 但是应用程序很大且是多线程的,因此我想将它划分为区分 . 我不想在另一个模块的应用程序块任务的一个模块中执行缓慢的任务 . 如果我不能为不同的模块使用不同的线程池,则意味着在大多数现实情况下我无法安全地使用并行流 . 请尝试以下示例 . 在单独的线程中...
  • 554 votes
     answers
     views

    ConcurrentHashMap和Collections.synchronizedMap(Map)有什么区别?

    我有一个Map,它将被多个线程同时修改 . Java API中似乎有三种不同的同步Map实现: Hashtable Collections.synchronizedMap(Map) ConcurrentHashMap 据我所知, Hashtable 是一个旧的实现(扩展过时的 Dictionary 类),后来经过调整以适应 Map 接口 . 虽然它是同步的,但似乎有严重的scala...
  • 2 votes
     answers
     views

    JAVA以不同的方法在同一对象上同步块

    我试图理解java中synchronized块的概念 . 至于我读过的文档,我明白如果我们获取一个锁(使用实例变量的同步块),那么我们就无法在该类中的同一个对象上获取同步锁 . 但是,当我尝试使用以下代码段时,我发现我的理解是错误的 . 即我能够同时在两种不同的方法中获取锁(同一实例变量上的同步块) . 当线程启动时,它将转到run方法并无限期地等待,并且不会从synchronized块中出来 ....
  • 0 votes
     answers
     views

    原子性与条件 - 同步机制

    两种管理并发的同步机制:1)原子性:确保没有其他线程更改数据,而一个线程正在运行2)条件同步:确保不同线程中的代码以正确的顺序运行 . 根据我的理解,使用lock, acquire() 和 release() 锁定机制确保同步,在原子方法中,这是第一个同步机制(上图) . 使用条件同步方法实现锁 cannot 信号量只能使用原子同步方法实现吗? 要么 信号量只能使用条件同步方法实现吗? 要么...
  • 0 votes
     answers
     views

    如何防止同一个类实例中的不同线程同时执行方法

    假设我有两个线程,都是从给定的类实例A开始的 . 线程必须从同一个实例执行一个方法,但一次只执行一个 . 我尝试使该方法同步但显然它适用于有不同的实例试图调用该方法(从我的理解;请原谅我,如果我错了) . 那么我该如何实现这一目标,最好是以标准或推荐的方式? 编辑:这是相关的代码: public class A { . . . public void method1(){ Execu...
  • 2 votes
     answers
     views

    Rabbitmq队列的多个使用者是否可能获得相同的消息?

    我负责维护用Golang编写的 生产环境 软件,该软件使用RabbitMq作为其消息队列 .考虑以下情况: 许多goroutine正在发布到队列名称日志 . 另一组goroutines从队列中读取并将消息写入MongoDB集合 . 每个发布者或消费者分别拥有自己的连接和自己的通道,他们正在无限循环中工作,永不死亡 . (程序启动时 Build 连接和通道 . ) autoAck ...
  • 737 votes
     answers
     views

    收藏被修改;枚举操作可能无法执行

    我无法理解这个错误的底部,因为当附加调试器时,它似乎不会发生 . 以下是代码 . 这是Windows服务中的WCF服务器 . 只要存在数据事件,服务就会调用NotifySubscribers方法(以随机间隔,但不常见 - 每天约800次) . 当Windows窗体客户端订阅时,订户ID将添加到订阅者字典中,当客户端取消订阅时,将从字典中删除它 . 客户端取消订阅时(或之后)发生错误 . 看来,下次...
  • 0 votes
     answers
     views

    如果不为null,则选择更新,但带有异常或返回值

    我有两个线程,都需要更新同一行 .该行看起来像: (id,firstName,lastName) (1,"xxxx",null) 1是主键值 更新看起来像: Update table set lastName = "yyy" where id = 1 and lastName = null; 我想要的是如果一个线程成功地将null last...
  • 3 votes
     answers
     views

    并行运行多个JPA事务

    我有两个(或更多)Java线程使用JPA从mysql数据库创建,更新和删除实体 . 为了实现这一点,我有一个PersistenceLayer类创建EntityManager并为我的所有实体提供保存,更新和删除方法,如下所示: public void saveEntity(Entity entity) { manager.getTransaction().begin(); manag...
  • 1 votes
     answers
     views

    在Nodejs中并发

    我有如下节点服务器 . 我几乎同时推送2个请求(使用相同的url =“localhost:8080 /”) . 我的问题是:“为什么服务器等待第一个请求句柄完成,然后第二个请求将被处理”? 我的测试控制台输出: Home.. Home.. (注意:第二行将在12秒后显示) - server.js: var express = require('express') var app =...
  • 780 votes
     answers
     views

    什么是比赛条件?

    编写多线程应用程序时,遇到的最常见问题之一是竞争条件 . 我对社区的问题是: 什么是比赛条件?你怎么发现它们?你怎么处理它们?最后,你如何防止它们发生?
  • 1 votes
     answers
     views

    关闭Go Channels 时进入竞争状态

    以下Go代码示例在 c <- byte(0) 和 close(c) 行之间具有Race条件 . 使用 go test -race 运行代码时会发出信号 . func TestRace(t *testing.T) { var c = make(chan byte, 20) go func() { defer func() { if r :...
  • 1 votes
     answers
     views

    Http请求/并发?

    假设我的localhost上的网站大约需要3秒钟来完成每个请求 . 这很好,正如预期的那样(因为它在幕后做了一些奇特的网络) . 但是,如果我在选项卡中打开相同的URL(在firefox中),然后同时重新加载它们,它似乎按顺序加载每个页面而不是同时加载所有页面 . 这是怎么回事? 在Windows Server 2008 iis和Windows 7 iis上试过了
  • 288 votes
     answers
     views

    什么是信号量?

    信号量是一种经常用于解决多线程问题的编程概念 . 我向社区提出的问题: 什么是信号量,你如何使用它?
  • 317 votes
     answers
     views

    锁,互斥,信号量...有什么区别?

    我听说这些词与并发编程有关,但它们之间的区别是什么?
  • 0 votes
     answers
     views

    处理P0打印“0”的次数是多少?

    以下程序由3个并发进程和3个二进制信号量组成 . 信号量初始化为S0 = 1 S1 = 0 S2 = 0 过程P0: while(1) { wait (S0); print '0'; release (S1); release (S2); } 流程P1: wait(S1); release (S0); 过程P2: wait(S2); release (S0); 处理PO打印'0“的次数是多少...
  • 1 votes
     answers
     views

    二进制信号量如何进行?

    出现以下问题时,我正在研究二进制信号量: 假设有3个并发进程和3个二进制信号量......信号量被初始化为S0 = 1,S1 = 0,S2 = 0 . 这些过程具有以下代码: Process P0: Process P1: Process P2: while (true){ wait(...
  • 1 votes
     answers
     views

    普通Java中的主题式并发队列

    在重新发明轮子之前,普通Java中是否存在类似主题的并发队列?我有以下要求: 多个读者/消费者 多个作家/制片人 每个(活动)消费者必须使用每条消息 在每个消费者阅读消息后,它应该变成垃圾(即没有更多的引用) 写入队列不应该是消费者数量的O(N) 并发,最好是非阻塞 不基于JMS:它适用于更轻/可嵌入的环境 这几乎是我需要的一切 . 有什么指针吗?
  • 0 votes
     answers
     views

    使用List的消费者/ 生产环境 者模式

    我有一个WinForms应用程序,有一个消费者和一个 生产环境 者任务 . 我的 生产环境 者任务定期连接到Web服务并检索指定数量的字符串,然后需要将这些字符串放入某种并发固定大小的FIFO队列中 . 我的消费者任务然后处理这些字符串然后作为SMS消息发送(每个消息一个字符串) . 我的 生产环境 者任务调用的SOAP函数需要一个参数来指定我想要获取的字符串数 . 该号码将由我队列中的可用空间决...
  • 9 votes
     answers
     views

    生产环境 者/消费者工作队列

    我正在努力实现我的处理管道的最佳方法 . 我的制作人将作品提供给BlockingQueue . 在消费者方面,我轮询队列,包装我在Runnable任务中获得的内容,并将其提交给ExecutorService . while (!isStopping()) { String work = workQueue.poll(1000L, TimeUnit.MILLISECONDS); if...
  • 3 votes
     answers
     views

    PHP并发HTTP请求?

    我想知道在PHP中进行并发HTTP请求的最佳方法是什么?我有很多数据可以获取,我宁愿一次做多个请求来检索所有数据 . 有人知道我怎么做吗?最好是匿名/回调函数mannor ... 谢谢, 汤姆 .
  • 8 votes
     answers
     views

    并发http请求没有响应

    我正在玩Go,我遇到了一个我无法解决的问题 . 以下代码是重现我的问题的最不可能的代码 . 原始代码的目标是将http请求委托给goroutines . 每个goroutine做了一些沉重的图像计算,并应该响应 . package main import ( "fmt" "runtime" "net/http" ...

热门问题