Questions tagged «multithreading»

多线程是计算机或程序通过利用多个并发的执行流(通常称为线程)来并发或异步执行工作的能力。



7
atomic / volatile / synchronized有什么区别?
原子/易失性/同步在内部如何工作? 以下代码块之间有什么区别? 代码1 private int counter; public int getNextUniqueIndex() { return counter++; } 代码2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } 代码3 private volatile int counter; public int getNextUniqueIndex() { return counter++; } 是否volatile以以下方式工作?是 volatile int i = 0; void incIBy5() { i += 5; } 相当于 …


5
用成员函数启动线程
我正在尝试std::thread使用不带参数和返回值的成员函数构造一个void。我无法找出任何有效的语法-编译器会抱怨。什么是正确的实现方式spawn(),使其返回std::thread执行结果test()? #include <thread> class blub { void test() { } public: std::thread spawn() { return { test }; } };

12
如何在Android中暂停/休眠线程或进程?
我想在两行代码之间暂停一下,让我解释一下: ->用户单击一个按钮(实际上是卡片),然后通过更改此按钮的背景来显示它: thisbutton.setBackgroundResource(R.drawable.icon); ->假设1秒钟之后,我需要通过更改其背景回到按钮的先前状态: thisbutton.setBackgroundResource(R.drawable.defaultcard); ->我尝试使用以下命令在这两行代码之间暂停线程: try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } 但是,这不起作用。也许是过程而不是我需要暂停的线程? 我也尝试过(但是不起作用): new Reminder(5); 有了这个: public class Reminder { Timer timer; public Reminder(int seconds) { timer = new Timer(); timer.schedule(new RemindTask(), seconds*1000); } class RemindTask extends TimerTask { public …


10
如何将参数传递给Thread中的ThreadStart方法?
如何将参数传递给Thread.ThreadStart()C#中的方法? 假设我有一个名为“下载”的方法 public void download(string filename) { // download code } 现在,我在main方法中创建了一个线程: Thread thread = new Thread(new ThreadStart(download(filename)); 错误方法类型预期。 如何将参数传递给ThreadStart带有参数的目标方法?
290 c#  .net  multithreading 


9
如何正确停止Java中的线程?
我需要一个解决方案来正确停止Java中的线程。 我有IndexProcessor实现Runnable接口的类: public class IndexProcessor implements Runnable { private static final Logger LOGGER = LoggerFactory.getLogger(IndexProcessor.class); @Override public void run() { boolean run = true; while (run) { try { LOGGER.debug("Sleeping..."); Thread.sleep((long) 15000); LOGGER.debug("Processing"); } catch (InterruptedException e) { LOGGER.error("Exception", e); run = false; } } } } 我有ServletContextListener启动和停止线程的类: public class …


10
如何使函数等到使用node.js调用回调后
我有一个简化的函数,看起来像这样: function(query) { myApi.exec('SomeCommand', function(response) { return response; }); } 基本上,我希望它调用myApi.exec,并返回在回调lambda中给出的响应。但是,上面的代码不起作用,只是立即返回。 只是出于非常骇人的尝试,我尝试了以下无效的方法,但至少您了解了我要实现的目标: function(query) { var r; myApi.exec('SomeCommand', function(response) { r = response; }); while (!r) {} return r; } 基本上,实现此目的的一种好“ node.js /事件驱动”方式是什么?我希望我的函数等待,直到调用了回调,然后返回传递给它的值。


13
线程之间共享哪些资源?
最近,在一次采访中有人问我一个问题,流程和线程之间有什么区别。真的,我不知道答案。我想了一会儿,给出了一个很奇怪的答案。 线程共享相同的内存,进程不共享。在回答了这个问题之后,面试官给了我一个邪恶的微笑,并向我提出了以下问题: 问:您知道程序被划分为哪些部分吗? 我的回答:是的(这很简单)堆栈,数据,代码,堆 问:那么,告诉我:线程共享哪些段? 我无法回答这个问题,最后全部说了出来。 请问,有人可以针对进程和线程之间的差异给出正确而令人印象深刻的答案吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.