- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Termux 在我的 Android 手机上安装了 python 3.7.3。当我尝试在 python shell 中从多处理导入同步时,我收到了上述错误。这是我的代码
from multiprocessing import synchronize
这里是回溯
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.7/multiprocessing/synchronize.py", line 28, in <module>
from _multiprocessing import SemLock, sem_unlink
ImportError: cannot import name 'SemLock' from '_multiprocessing' (/data/data/com.termux/files/home/storage/predictions/env/lib/python3.7/lib-dynload/_multiprocessing.cpython-37m.so)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/data/data/com.termux/files/usr/lib/python3.7/multiprocessing/synchronize.py", line 32, in <module>
" synchronization primitives needed will not" +
ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.
之后我试着看到提到 3770 问题,但官方网站上的 url 似乎不起作用。谁能帮我解决这个问题
最佳答案
除非您是错误消息本身所述的 Android 开发者,否则此问题无法解决。
sem_open
是用于初始化或打开现有 POSIX 信号量的函数。信号量是线程之间共享的变量,用相当粗略的术语来说,它是系统级组件。 Android 发行版缺少此组件,因此您无能为力。
关于python - 该平台缺少功能性的 sem_open 实现,因此,需要所需的同步原语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58171241/
给定这段代码: #include #include #include #include #include #include #include #include #include #i
所以我得到了错误:“未定义对 sem_open() 的引用”,即使我已经包含了 header 。我所有的 pthread 函数调用(mutex、pthread_create 等)都发生了同样的事情。有
我有以下代码: // DIE is macro i defined for catching errors semc = sem_open(sem_name, O_CREAT, 0644, 1);
我正在尝试学习如何使用信号量,但我对它们的一般用法有点困惑。我正在尝试理解给出的示例。 这是第一个进程中信号量的初始化: sem_t *s1 = sem_open(SEM_1, O_CREAT | O
我正在尝试使用与 RabbitMQ 和 Django 一起运行的 Celery。到目前为止,我的服务器上安装了 RabbitMQ 2.7,以及 python 2.7、Django 1.3、celery
我有一个简单的程序: int main(void) { const char sname[]="xxx"; sem_t *pSemaphor; if ((pSemaphor = sem_o
在我的生产者和消费者问题中,我使用 sem_open() 来初始化信号量。如何测试 sem_open() 是否以正确的方式工作? 该程序可以编译,但是当我运行该程序时,它不打印任何内容。我测试了程序,
我正在运行下面的程序,并根据 sem_open's man page : If a process makes repeated calls to sem_open(), with the same
我目前正在为 iOS 移植一个 C 库,并且需要将原来的 sem_init() 更改为 sem_open() 因为iOS 不支持 sem_init() 我看到一些讨论说 sem_open() 会在系统
我正在尝试为我的学生制作一个关于共享内存的教程。但是,我在等待或发布信号量时看到崩溃。我正在使用 sem_open API 来初始化信号量。在执行 sem_open 之前我需要分配一些内存吗?在我看来
我想打开 n 个信号量(n 来自 argv[])。我做了 sem_t* 数组,并尝试在循环中 sem_open 它们。但是,我需要每个信号量的 const char* 唯一名称。有什么办法吗?请帮助:
我在使用 C 语言使信号量在基于 Linux 的系统上工作时遇到了很多困难。 我的申请流程是这样的: 申请开始 申请分支到 child / parent 每个进程使用具有共同名称的sem_open 打
尝试打开信号量时 sem_open 失败。 errno 是 22 (),perror 描述为“无效参数”。我已经检查了名称的格式(我认为这是正确的)以及标志(O_CREAT 和 O_EXCL 似乎很难
我使用 Termux 在我的 Android 手机上安装了 python 3.7.3。当我尝试在 python shell 中从多处理导入同步时,我收到了上述错误。这是我的代码 from multip
在学习共享进程信号量时,我注意到 sem_open() 有两个函数原型(prototype):https://man7.org/linux/man-pages/man3/sem_open.3.html
在学习共享进程信号量时,我注意到 sem_open() 有两个函数原型(prototype):https://man7.org/linux/man-pages/man3/sem_open.3.html
我目前遇到了一个问题。 下面是原代码 sem_t s; sem_init(&s, 0, 1); 我需要将 sem_init 替换为 sem_open,因为它将在 iOS 上使用 sem_t s; se
当我初始化一个新的信号量时,我想检测它是否正确初始化,最好的方法是什么? 根据 this link ,它说如果发生错误 sem_open 返回 -1,我做了一个决定: if ((sem_t *sema
我正在尝试在 C 中的初始化函数中创建信号量: void sem_init(int size, sem_t** sem1, sem_t** sem2) { char* semname1 = "/s
我有两个 Slackware Linux 系统,在这两个系统上,POSIX 信号量 sem_open() 调用失败,errno 设置为 38。下面要重现的示例代码(代码在 CentOS/RedHat
我是一名优秀的程序员,十分优秀!