Tag: multithreading

芹菜并行分布式任务与多处理

我有一个CPU密集型的芹菜任务。 我想使用大量EC2实例的所有处理能力(核心)来更快地完成这项工作( 我认为是一个多处理的芹菜并行分布式任务) 。 线程 , 多处理 , 分布式计算 , 分布式并行处理等术语都是我想要更好地理解的术语。 示例任务: @app.task for item in list_of_millions_of_ids: id = item # do some long complicated equation here very CPU heavy!!!!!!! database.objects(newid=id).save() 使用上面的代码(如果可能,举个例子)如何使用Celery来分配这个任务,通过允许在云中的所有可用机器上利用所有计算CPU能力来分割这个任务?

我如何理解阅读内存障碍和易失性

某些语言提供了一个volatile修饰符,它被描述为在读取支持variables的内存之前执行“读取内存障碍”。 读取内存屏障通常被描述为确保CPU在屏障之前执行读取之前所请求的读取,然后在屏障之后执行读取请求的方式。 但是,使用这个定义,似乎仍然可以读取陈旧的价值。 换句话说,以某一顺序执行读取似乎并不意味着必须查阅主存储器或其他CPU以确保读取的后续值实际上反映了在读取屏障时系统中的最新值或者在阅读障碍。 那么,volatile是否确实保证读取的是最新的值,或者只是读取的值至less与屏障之前的读取值一样是最新的(gasp!)。 还是其他一些解释? 这个答案的实际含义是什么?

如何在序列图中说明多个线程?

你怎么能清楚地说明序列图或类似图中的多个执行线程? 我还没有find任何明确的例子。 我看到的所有图都用来说明单个线程。 更新 :接受的答案是我看到的最好的例子,但它确实留下了一点点的要求。 我结束了在单独的序列图中说明线程。 我不确定序列图是否适用于多个线程。

什么时候应该使用Java的Thread over Executor?

执行者似乎是一个干净的抽象。 你想什么时候直接使用Thread而不是依赖更强大的执行器?

Java套接字是否支持全双工?

是否有可能有一个线程写入Java Socket的OutputStream ,而另一个线程从套接字的InputStream读取,而线程不必在套接字上同步?

如何等待ThreadPoolExecutor中的所有任务完成而不closuresExecutor?

我不能使用shutdown()和awaitTermination()因为在等待的时候可能会有新的任务被添加到ThreadPoolExecutor中。 所以我正在寻找一种方法来等待,直到ThreadPoolExecutor已经清空它的队列,并完成了它的所有任务,而不停止在这个点之前添加新的任务。 如果它有什么区别,这是Android的。 谢谢 更新 :几个星期后,重新审视这个,我发现一个修改后的CountDownLatch在这种情况下对我更好。 我会保留答案,因为它更多地适用于我所问的问题。

如何使用固定数量的工作线程来实现简单线程

我正在寻找最简单,最直接的方法来实现以下内容: 主程序实例化工作线程来完成一项任务。 只有n任务可以同时运行。 当达到n时,不再有工人开始工作,直到正在运行的线程的数量回落到n以下。

在使用C ++进行multithreading编程时,有什么“要知道的事情”

我目前正在使用C ++开发一个无线networking应用程序,而且我将要在一个进程中对多个线程进行multithreading处理,而不是将它们全部放在单独的进程中。 从理论上讲,我理解multithreading,但是我还没有实际的潜力。 在C ++中编写multithreading代码时,每个程序员应该知道什么?

Okhttp在主线程上回应callback

我创build了一个帮助器类来处理我的应用程序中的所有http调用。 这是一个okhttp的简单单例包装,看起来像这样(我省略了一些不重要的部分): public class HttpUtil { private OkHttpClient client; private Request.Builder builder; … public void get(String url, HttpCallback cb) { call("GET", url, cb); } public void post(String url, HttpCallback cb) { call("POST", url, cb); } private void call(String method, String url, final HttpCallback cb) { Request request = builder.url(url).method(method, method.equals("GET") ? null : new RequestBody() […]

从线程更新UI

我想从更新进度条的线程更新我的用户界面。 不幸的是,当从“runnable”更新进度条的drawable时,进度条消失了! 在其他人的作品中更改onCreate()的进度条绘图! 有什么build议么? public void onCreate(Bundle savedInstanceState) { res = getResources(); super.onCreate(savedInstanceState); setContentView(R.layout.gameone); pB.setProgressDrawable(getResources().getDrawable(R.drawable.green)); //**Works**/ handler.postDelayed(runnable, 1); } private Runnable runnable = new Runnable() { public void run() { runOnUiThread(new Runnable() { public void run() { //* The Complete ProgressBar does not appear**/ pB.setProgressDrawable(getResources().getDrawable(R.drawable.green)); } }); } }