首页 \ 问答 \ 线程在Python中如何工作,什么是常见的Python线程特定陷阱?(How do threads work in Python, and what are common Python-threading specific pitfalls?)

线程在Python中如何工作,什么是常见的Python线程特定陷阱?(How do threads work in Python, and what are common Python-threading specific pitfalls?)

我一直在试图围绕Python中的线程工作,很难找到有关它们如何运行的良好信息。 我可能只是错过了一个链接或某些东西,但是看起来官方的文档在这个问题上并不十分彻底,而且我还没有找到一个很好的写作。

从我可以看出,只有一个线程可以一次运行,并且活动线程每10个指令切换一次?

哪里有很好的解释,还是可以提供一个? 要知道使用线程使用Python时遇到的常见问题,这也是非常好的。


I've been trying to wrap my head around how threads work in Python, and it's hard to find good information on how they operate. I may just be missing a link or something, but it seems like the official documentation isn't very thorough on the subject, and I haven't been able to find a good write-up.

From what I can tell, only one thread can be running at once, and the active thread switches every 10 instructions or so?

Where is there a good explanation, or can you provide one? It would also be very nice to be aware of common problems that you run into while using threads with Python.


原文:https://stackoverflow.com/questions/31340
更新时间:2023-06-28 14:06

最满意答案

整数除法总是导致一个整数; 所以: word.Length / 2返回int (它向下word.Length / 2 )。

当你对此调用Math.Ceiling时,你传递了一个整数,但是没有 Math.Ceiling(int) 。 它有两个选择: Math.Ceiling(double)Math.Ceiling(decimal) ,但是:它也可以使用,而且从编译器的角度来看,这两种选择都不会更好。

坦率地说,使用通用的“页数”公式可能会更简单:

int pages = (items + pageSize - 1) / pageSize;

在这种情况下变得简单:

int upperLimit = (word.Length + 1) / 2;

(请注意,通用页面计数公式也可以写成int pages = ((items - 1) / pageSize) + 1;但在这种情况下,替换固定页面大小将更困难)


Integer division always results in an integer; so: word.Length / 2 returns int (it rounds down).

When you call Math.Ceiling on this, you are passing an integer, but there is not Math.Ceiling(int). It has two choices: Math.Ceiling(double) and Math.Ceiling(decimal), but: it could use either, and neither of those is better from the compiler's perspective.

Frankly, it might be simpler to use the general purpose "page count" formula:

int pages = (items + pageSize - 1) / pageSize;

which in this case becomes simply:

int upperLimit = (word.Length + 1) / 2;

(note that the general purpose page count formula can also be written int pages = ((items - 1) / pageSize) + 1;, although in this case it would be harder to substitute your fixed page size)

相关问答

更多

相关文章

更多

最新问答

更多
  • h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
  • 创建一个功能(Create a function)
  • 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
  • PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
  • Qt冻结循环的原因?(Qt freezing cause of the loop?)
  • TableView重复youtube-api结果(TableView Repeating youtube-api result)
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
  • 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
  • 以编程方式创建UITableView(Creating a UITableView Programmatically)
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
  • Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
  • 设置kotlin扩展名(Setting a kotlin extension)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 如何在vim中启用python3?(How to enable python3 in vim?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • dedecms如何安装?
  • 在哪儿学计算机最好?
  • 学php哪个的书 最好,本人菜鸟
  • 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
  • 如何覆盖错误堆栈getter(How to override Error stack getter)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
  • 电脑高中毕业学习去哪里培训
  • 正则表达式验证SMTP响应(Regex to validate SMTP Responses)