java从1开始计时用线程_java – Python – 线程,计时或函数使用?
我正在制定一个关于如何解决这个问题的想法.请帮忙.
我的项目包含一个N x N网格,其中包含一系列块,这些块应该在随机方向和随机速度内移动(每隔0.1秒,块的位置用速度更新).我有三个“特殊”块,预计会有各自的移动功能.我将有其他块(其中许多)除了更新它们的位置之外什么都不做,并确保它们保留在网格中.
现在这三个块具有超出移动的功能,但是每个块都单独运行,等待另一个块的特殊功能完成(块2将在块1上等待,块3将等待2并将其设置回块1等.这个排序队列将在运动发生时运行.我希望议案永不停止.在每个块的非移动函数运行n次后,代码完成.
我的问题是:我应该使用线程来启动和停止非移动函数,还是有一种方法可以设置一个时间并设置在.1秒后可以使用类函数的布尔值来连续移动对象(显然循环遍历),然后使用计数一起结束程序?如果是这样,你将如何在Python中编写main函数?对于所有这一切,有人认为Java在运行时会比Python快得多,特别是在将数据写入.txt文件时吗?
解决方法:
您最好的选择可能是在单个更新函数中同时处理所有这些,而不是尝试使用线程.这主要是因为Global Interpreter Lock将阻止多个线程同时处理.你之后的是这样的:
def tick():
for box in randomBoxes:
box.relocate()
specialBlock1.relocate()
specialBlock2.relocate()
specialBlock3.relocate()
然后我们定义第二个函数,它将无限期地运行我们的第一个函数:
def worker():
while True:
tick()
sleep(0.1)
现在我们有一个间隔或排序,我们将启动一个在后台运行并处理我们的显示更新的线程.
from threading import Thread
t = Thread(target = worker, name = "Grid Worker")
t.daemon = True # Useful when this thread is not the main thread.
t.start()
在我们的tick()函数中,我们已经满足了specialBlocks 1,2和3按设定顺序工作的要求.其他箱子各自采取行动,不管其他人做什么.
标签:python,java,multithreading,timing
来源: https://codeday.me/bug/20190704/1380853.html
java从1开始计时用线程_java – Python – 线程,计时或函数使用?相关推荐
- java 线程组和线程_Java多线程 线程组原理及实例详解
线程组 线程组可以批量管理线程和线程组对象. 一级关联 例子如下,建立一级关联. public class MyThread43 implements Runnable{ public void ru ...
- java 线程中创建线程_java – 在线程中创建线程 – 良好的做法?
参见英文答案 > Threads within threads in Java? 4个 在线程中启动线程是一种好习惯吗?我搜 ...
- java中断线程_Java中断线程的方法
使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回.这 ...
- java自定义线程_Java自定义线程池详解
自定义线程池的核心:ThreadPoolExecutor 为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制,其中在java.util.concurrent ...
- java 事务管理 子父线程_java父线程子线程(转)
问:在父线程中New了一个子线程,想在停止父线程时也停止子线程,应该怎么做? 答: 从某种程度上讲,做不到. 不管是父线程还是子线程,这只不过是在运行时谁建了谁时用的,一旦所谓的字线程被启动,这两个线 ...
- java进程线程_Java进程线程笔记
什么是并行和并发? 并发和并行是即相似又有区别:(微观) 并行:指两个或多个事件在同一时刻发生: 强调的是时间点. 并发:指两个或多个事件在同一时间段内发生: 强调的是时间段. 进程和线程的区别? 进 ...
- java 父线程_Java父线程(或是主线程)等待所有子线程退出的实例
导读热词 实例如下: static void testLock1(){ final AtomicInteger waitCount = new AtomicInteger(30000); final ...
- java for(o t :object) 获取顺序号_java中线程的生命周期
线程是java中绕不过去的一个话题, 今天本文将会详细讲解java中线程的生命周期,希望可以给大家一些启发. java中Thread的状态 java中Thread有6种状态,分别是: NEW – 新创 ...
- java for循环创建线程_Java创建线程的两种方法
大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 ...
最新文章
- Java知识积累——String引用的判断问题
- 一个人越来越有出息的7大迹象
- rsync 安装使用详解
- Python教程:zip 函数的用法
- VUE初始化一个项目
- centof7无法上网问题
- com.github.pagehelper.PageHelper cannot be cast to org.apache.ibatis.plugin.Interceptor和oracle不识别
- 计算可靠度编制matlab,工程结构可靠度计算的Matlab实现
- Android长截屏(滚动截屏)实现原理
- java opencv 人脸相似度_java实现OpenCV 4.1.0人脸相似度对比
- 公式计算机实现,数学公式的计算机表达(精选).doc
- www.gvlib video.php,求大佬帮忙
- Mac系统安装/升级 Git
- Outlook创建不了Skype会议的解决方案
- 无线Mesh网络技术基础与应用
- 插入数据时出现Duplicate entry ‘XXX‘ for key ‘XXX‘
- 一文读懂网站SEO优化国际版
- php mql获取结果集,mql查询删除更新嵌入求指导php
- java 取10位时间戳_java里Date 10位时间戳(Timestamp) String 相互转换
- 腾讯应届生怒怼“加班文化”:产品晚一天上线,公司会倒闭吗?腾讯回应:会认真反思,尽快整改!...