Tag: multithreading

使2个function同时运行

我正在尝试使2个函数在同一时间运行。 def func1(): print 'Working' def func2(): print 'Working' func1() func2() 有谁知道如何做到这一点?

asynchronous进程启动并等待它完成

我是.net中的线程模型的新手。 你会用什么来: 启动一个处理文件的进程(process.StartInfo.FileName = fileName;) 等待用户closures该进程或在一段时间后放弃该线程 如果用户closures了进程,请删除该文件 启动进程和等待应该在与主线程不同的线程上完成,因为这个操作不应该影响应用程序。 例: 我的应用程序产生一个HTML报告。 用户可以右键点击某处,然后说“查看报告” – 现在我在一个临时文件中检索报告内容,并启动处理html文件的过程,即默认浏览器。 问题是我无法清理,即删除临时文件。

Java中的synchronized方法和synchronized块之间有什么区别?

Java中的同步方法和同步块之间有什么区别? 我一直在网上寻找答案,人们似乎对这个问题很不确定:-( 我认为两者之间没有区别,只是同步块可能在范围上更加局部化,因此locking时间较短。 而且在locking一个静态方法的情况下,locking是什么? 什么是locking类的含义?

Android更新Thread和Runnable中的TextView

我想在Android中做一个简单的定时器,每秒更新一次TextView。 它只是像扫雷一样计算秒数。 问题是当我忽略tvTime.setText(…)(使其成为//tvTime.setText(…),LogCat中将每秒打印下面的数字。但是当我想要设置此数字为TextView(在另一个线程中创build),程序崩溃。 有没有人有一个想法如何轻松解决这个问题? 这是代码(在启动时调用方法): private void startTimerThread() { Thread th = new Thread(new Runnable() { private long startTime = System.currentTimeMillis(); public void run() { while (gameState == GameState.Playing) { System.out.println((System.currentTimeMillis() – this.startTime) / 1000); tvTime.setText("" + ((System.currentTimeMillis() – this.startTime) / 1000)); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }); […]

在一段时间后停止线程

我打算在一段时间后终止一些线程。 这些线程将运行一个无限的while循环,在这段时间内,它们可能会随机失去大量的时间。 线程的持续时间不能超过持续时间variables设置的时间。 如何在持续时间设定的长度之后,线程停止。 def main(): t1 = threading.Thread(target=thread1, args=1) t2 = threading.Thread(target=thread2, args=2) time.sleep(duration) #the threads must be terminated after this sleep

为什么wait()总是在一个循环中被调用

我读过,我们应该总是从一个循环内调用wait() : while (!condition) { obj.wait(); } 它工作正常,没有一个循环,为什么呢?

在Java中有一个“阻塞直到条件成真”的function吗?

我正在为一个服务器编写一个监听线程,目前我正在使用: while (true){ try { if (condition){ //do something condition=false; } sleep(1000); } catch (InterruptedException ex){ Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex); } } 有了上面的代码,我遇到了运行函数吃掉所有cpu时间循环的问题。 睡眠function的作品,但它似乎是一个临时修复,而不是解决scheme。 是否有一些函数会阻塞,直到variables“条件”变成“真”? 或者是持续循环等待一个variables的值改变的标准方法?

++运算符线程安全吗?

注意:我并不是很擅长Multithreaded编程,但是我现在的项目让我这么做,所以我试图让我的脑海里围绕着什么是线程安全的,什么不是。 我正在阅读Eric Lippert 关于我所做的++的真棒答案之一 。 他说这就是真正发生的事情: 评估x来产生variables 该variables的值被复制到一个临时位置 临时值会递增以产生一个新值(不会覆盖临时!) 新值存储在variables中 操作的结果是新的价值 这让我想,如果两个线程调用++我怎么办? 如果第二个线程在步骤2时第一个线程在步骤3.(意思是如果第二个线程在第一个线程将新值存储在variables中之前将第二个线程拷贝到临时位置,该怎么办? 如果发生这种情况,那么似乎这两个线程只会增加i一次,而不是两次。 (除非整个事情都在lock )

thread_local在C ++ 11中意味着什么?

我对C ++ 11中的thread_local的描述感到困惑。 我的理解是,每个线程都有一个函数中局部variables的唯一副本。 全局/静态variables可以被所有线程访问(可能使用locking同步访问)。 thread_localvariables对所有线程都是可见的,但是只能由定义它们的线程修改。 这是对的吗?

在Python中创build线程

我有一个脚本,我想要一个function与另一个同时运行。 我看过的示例代码: import threading def MyThread ( threading.thread ): doing something…….. def MyThread2 ( threading.thread ): doing something…….. MyThread().start() MyThread2().start() 我很难得到这个工作。 我宁愿使用一个线程函数而不是一个类来完成这个任务。 感谢您的帮助。 这是工作脚本,感谢所有的帮助。 class myClass(): def help(self): os.system('./ssh.py') def nope(self): a = [1,2,3,4,5,6,67,78] for i in a: print i sleep(1) if __name__ == "__main__": Yep = myClass() thread = Thread(target = Yep.help) thread2 = […]