问题标签 [lightweight-processes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python 生成器函数/对象命名约定
我在同一个类中实现了一些逻辑过程。一个类实例为每个进程获取一个生成器,并run()
推进所述生成器。在我的情况下,发电机不会结束。
您将如何在下面的代码中调用foo_function和foo_object
典型的过程是discovery
, authentication
,watchdog
等。
如何以合理的方式命名定义生成器和包含生成器对象的属性的函数?
最后只是为了踢球,同名的名字会很疯狂,对吧?
programming-languages - LLVM 是否提供任何设施来实现“绿色线程”/轻量级进程?
我正在研究使用 LLVM 作为本机代码生成器来设计一种支持轻量级进程(“绿色线程”)的并发语言。轻量级进程以 M:N 方式分配给本地操作系统线程,并且线程之间的工作窃取应该是可能的(即进程应该由可以在必要时在线程之间传递的数据结构表示)。可能同时存在大量进程,因此进程不应占用太多内存,并且它们之间的上下文切换应尽可能快。此外,在上下文切换期间或发生垃圾收集时“暂停”轻量级进程应该相当简单。我知道 Erlang 有一个 LLVM 后端,但我几乎找不到关于它的实现的文献;
linux - Linux 中的线程和 LWP
这句话是否正确:“Linux 中的所有线程都是 LWP,但并非所有 LWP 都是线程”。实际上,我试图理解Linux中的线程实现。pthread_create 调用 clone syscall,但在 man clone 中,我没有找到对 LWP 的任何引用。
那么,Linux 有 LWP 吗?
c - 不能多线程,但可以使用 for 循环或单线程
我试图让多个线程对二维数组执行并行计算。用户在 25*25 2d 数组上指定他们想要多少线程,如果用户想要 5 个线程,那么每个线程对 125 个元素执行计算。(为简单起见,我对这些数字进行了硬编码,只是为了让程序在这些条件下工作)。
该代码适用于 1 个线程,当我使用 for 循环进行模拟时,一切正常。这是康威人生游戏节目。使用 1 个线程或 forloop 调用 gen 函数 5 次,程序可以正常工作。它正确打印出网格。有 5 个线程,它只打印一次,程序结束
我无法在线程内部进行测试,因为 printf 在线程中不起作用。我已经花了几个小时在这上面,但我无法弄清楚。
c - 对在 C 中使用缓冲区感到困惑
对于我的任务,我必须使用轻量级进程和恒定大小的缓冲区来解决一个简化的康威问题。程序读取一个字符流,将该流打包成 10 个字符的块,然后将它们写成 24 个字符的行。井号 ('#') 字符将用作数据结束 (EOD) 标记值。我们必须实施以下更改:
在每个块之后插入一个额外的空白。
每对相邻的星号都被一个感叹号代替。仅当星号位于同一块中时,它们才被视为相邻。
我从来没有用 C 编程过,这让我很适应。我们得到了主程序三个进程和缓冲区操作的原型。到目前为止,经过几个小时后,我才设法让缓冲区正常工作。这是主例程以及函数原型和定义。
这是缓冲区操作。
这是我的 3 个例程以及到目前为止我所拥有的。
我现在所做的所有代码都是读取输入,在缓冲区之间传递并打印出来。我知道我需要做什么,但不确定如何去做。我需要将换行逻辑添加到PrintOutput
,将空格添加逻辑添加到ReadInput
,并将星号感叹号逻辑添加到Squash
。我的主要问题是使用缓冲区并在适当的地方添加逻辑。C 对我来说是新的,这很令人困惑。
architecture - Elixir 编程语言在 iex 中的 BEAM 代表什么?
字母 BEA 和 M. 代表什么?我记得看到首字母缩略词“BEAM”的解释,但我没有设法再次找到它。
它出现在错误代码中:
因此,.beam 文件似乎存在某种问题,可能是由于我使用了 vi。(注意 Elixir 程序员:不要编辑 .beam 文件,这很痛苦。)
这个问题解释了 BEAM 虚拟机是什么,而不是字母代表什么。而且似乎很难快速找到关于词源的很多信息,或者在Erlang central上找到重点。据说BEAM 是 Erlang 和 Elixir 的秘方。
cassandra - Cassandra:同时提供原子性和防止“脏读”
我需要在具有不同分区键的 Cassandra 表中自动插入多行。同时,我需要确保每个查询的数据用户正在更新/插入的状态是正确的(这样在竞争条件下数据不会被弄乱)。例如db结构为:
插入行时,我需要确保数据库中不存在此 PK,我不想意外覆盖数据(Cassandra 会这样做)。为此,存在轻量级事务,因此我只需添加IF NOT EXISTS
子句即可。但问题是我有几个这样的插入,要么全部成功,要么都不成功。以下解决方案不起作用:
发出的错误是:Batch with conditions cannot span multiple partitions
。文档只是这么说,但没有提供解决方法。有没有办法在数据库层强制执行这种原子性和一致性?我知道 Cassandra 不能保证 ACID 原则,但我找不到答案,为什么批处理语句的限制被归类为错误而不是警告?什么可以作为解决此问题的方法?
任何有助于理解 Cassandra 哲学的想法和帮助将不胜感激
multithreading - 轻量级进程堆栈分配
Linux 轻量级进程共享此处提到的相同内存描述符。这包括所有段,包括文本、数据、堆、堆栈。我想知道内核如何为多个执行上下文管理这个共享堆栈段。或者内核是否为每个轻量级进程维护单独的堆栈?如果是这样,那么正在运行的进程如何引用该虚拟内存区域。
提前致谢。
linux - 哪个是 virtualbox 的轻量级 linux?
我对 Linux 完全陌生,我想在不放开我的 Windows 电脑的情况下下载和练习 linux 命令。我有一个带有 500 GB 硬盘驱动器、4 GB RAM 和 Pentium CPU B980 (2.4 GHz) 处理器的 Dell Inspiron,上面装有 Windows 8.1。我安装了 virtualbox 并下载了 Ubuntu Linux、Linux Mint、Mageia,但它们都很慢。我在这里和其他网站上检查了所有可能的答案,但我无法让它运行得更快。我相信这是因为所有这些 Linux 发行版(这是用来命名它们的花哨的词对吗?)都有图形界面。那么有没有一个只带有命令行界面并且对于“VIRTUALBOX”来说非常轻量级的linux?
谢谢
PS我对Linux完全陌生,我什至不知道它是什么。我现在只想安装它并练习一些命令。
感谢:D