Tag: multithreading

任何C库是否为GNU / Linux实现C11线程?

关于C11和C11线程有很多问题,但是我没有在任何地方看到明确的答案: 任何 C库都实现了GNU / Linux-like上可用的C11线程接口吗? 例如,从靠近p 的C11标准提供“可选” <threads.h>和线程支持库(如thrd_create() 。 376。 理想情况下,我希望find一个通用/通用/多种体系结构(例如,GNU / Linux,x86_64或便携式)的常见开源或免费库。 一些更有帮助和相关的SO链接: 这一个和这一个 glibc ; 这是谈论标准的一个; 这一个关于clang ; 这个关于C11的一般和这个关于Windows和其他平台的一个; 更多的关于C ++ 11线程,但我只对C11感兴趣。 图书馆的一些非启动选项: glibc库不 ; 自2012年以来有一个开放的错误 ; 有GSoC的build议,但似乎不被接受 ; LLVM / Clang项目没有C库; musl图书馆没有 ; – 现在呢! 请参阅下面的编辑并回答 。 Newlib库支持线程( docs ),但不使用pthread和C11线程; uClibc没有; 这个比较图,这是可疑的(例如,我看不到在C11线程本地存储支持musl来源的证据); 一些关于BSD的post, Pelles ,似乎是封闭的,只有Windows。 我对POSIX线程(很多很好的select),Windows,IDE,C ++ 11 都不感兴趣(我知道GNU libstdc++和LLVM / Clang […]

TPL和asynchronous/等待(线程处理)之间的区别

尝试理解TPL和asynchronous/等待线程创build之间的区别。 我相信TPL(TaskFactory.Startnew)类似于ThreadPool.QueueUserWorkItem,因为它在线程池中的线程上排队工作。 这当然,除非你使用TaskCreationOptions.LongRunning创build一个新的线程。 我认为asynchronous/等待将同样如此基本: TPL: Factory.StartNew( () => DoSomeAsyncWork() ) .ContinueWith( (antecedent) => { DoSomeWorkAfter(); },TaskScheduler.FromCurrentSynchronizationContext()); asynchronous/等待: await DoSomeAsyncWork(); DoSomeWorkAfter(); 将是相同的。 从我一直在读它看起来像asynchronous/只等待“有时”创build一个新的线程。 那么它什么时候创build一个新的线程,什么时候不创build一个新的线程呢? 如果你正在处理IO完成端口,我可以看到它不必创build一个新的线程,否则我会认为它将不得不。 我想我对FromCurrentSynchronizationContext的理解总是有点模糊。 我总是从头到尾都是UI线程。

如何在不影响其他线程的情况下睡眠node.js中的线程?

根据理解node.js事件循环 ,node.js支持单个线程模型。 这意味着如果我向一个node.js服务器发出多个请求,它不会为每个请求产生一个新的线程,而是会逐个执行每个请求。 这意味着如果我为node.js代码中的第一个请求执行以下操作,同时在节点上发出新的请求,则第二个请求必须等到第一个请求完成(包括5秒的hibernate时间)。 对? var sleep = require('sleep'); sleep.sleep(5)//sleep for 5 seconds 有没有一种方法,node.js可以为每个请求产生一个新的线程,以便第二个请求不必等待第一个请求完成,或者我可以只调用特定线程上的睡眠?

C#相当于java的等待和通知?

我知道,你可以locking一个对象在C#中使用锁,但你可以放弃锁,并等待别的东西通知你,它可以改变,你可以在Java中等待和通知? 在我看来,同步和locking在java和c#分别是同步的。

线程与线程

Python中的threading和thread模块有什么区别?

什么是进程和线程?

是的,我已经阅读了许多与操作系统相关的资料。 而我仍然在阅读。 但是,似乎他们都是以“抽象”的方式来描述过程和线索,这使得他们的行为和逻辑组织得到了很多高层次的阐述。 我想知道他们身体是什么? 在我看来,它们只是内核代码中维护和使用的一些内存“数据结构”,以方便程序的执行。 例如,操作系统使用一些过程数据结构(PCB)来描述为某个程序分配的过程的方面,例如其优先级,地址空间等等。 这样好吗?

获取std :: future的状态

是否有可能检查std::future是否已经完成? 至于我可以告诉唯一的方法做到这一wait_for调用wait_for零持续时间,并检查状态是否ready ,但有没有更好的办法?

ReaderWriterLock vs lock {}

请解释什么是主要区别,什么时候应该使用什么。 关注Webmultithreading应用程序。

Android的BroadcastReceiver还是简单的callback方法?

在我的项目中,我使用BroadcastReceiver作为长时间运行的线程的callback(例如,通知活动下载已完成,并从Worker Thread发送一些响应数据,以便活动可以向用户显示相应的消息。 )。 要使用BroadcastReceiver我必须小心地注册和注销广播接收器,每次我使用它时,还必须关心什么消息发送esspecialy当我使用这种方法更多不同的行动(如下载,使WebService调用等等..)。 也通过广播的意图发送自定义对象我还需要使对象Parcelable 。 与这种方法不同的是,我也看到了callback方法,它似乎比我使用的方法简单。 callback方法是简单的接口方法的实现,可以用来实现像应用程序消息传递中的BroadcastRecaiver一样的效果。 这种方法并不需要Parcelable实现来返回复杂的对象,它不使用像BroadcastReceiver这样的键。我认为不好的部分是,我需要检查callback对象的空值,然后再调用callback方法。并确保我正在UI线程上执行的代码,以便我可以更新UI没有错误。 好吧,我希望你明白我的意思是说:)。 现在的问题是你认为callback方法比单纯使用单一应用程序时的BroadcastReceiver方法更好(更轻,更干净,更快..)吗? (请注意,我不使用Android Service的后台工作..只是AsyncTask和Thread ) 谢谢!

ExecutorService中的活动线程

任何想法如何确定在ExecutorService中运行的活动线程的数量?