- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简单来说,我需要两个任务,其中一个任务优先级高,另一个任务优先级低。当高优先级时。任务正在执行,低优先级任务应停止,高优先级任务完成后,低优先级任务应从先前状态恢复。所以需要帮助..这是我使用的示例。
`#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
const char *message1 = "Thread 1";
const char *message2 = "Thread 2";
int th1, th2;
/* Create independent threads each of which will execute function */
while (1)
{
th1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
if(th1)
{
fprintf(stderr,"Error - pthread_create() return code: %d\n",th1);
exit(EXIT_FAILURE);
}
th2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
if(th2)
{
fprintf(stderr,"Error - pthread_create() return code: %d\n",th2);
exit(EXIT_FAILURE);
}
printf("pthread_create() for thread 1 returns: %d\n",th1);
printf("pthread_create() for thread 2 returns: %d\n",th2);
}
/* Wait till threads are complete before main continues. Unless we */
/* wait we run the risk of executing an exit which will terminate */
/* the process and all threads before the threads have completed. */
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
exit(EXIT_SUCCESS);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
`
最佳答案
如果您有 RTLinux (具有实时扩展的linux),您可以简单地定义线程的优先级,并让系统在较高优先级线程启动时自动挂起低优先级线程。引用的页面显示了如何创建具有给定优先级(最低优先级最高优先级)的线程:
pthread_attr_t attr;
struct sched_param param;
pthread_attr_init(&attr);
param.sched_priority = 1; // here priority will be 1
pthread_attr_setschedparam(&attr, ¶m);
pthread_create(&t1, &attr, &print_message_function, (void*) message1);
但是你不应该在循环中重复启动新线程,而应该将循环放在函数中。要重现该示例,print_message_function
可以是:
void print_message_function(void *ptr) {
char * message = ptr;
int i;
for (i=1; i<10; i++) {
printf("%s\n", message);
}
}
(这里每个线程将打印 10 条消息)
关于创建两个具有抢占和优先级的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39849739/
我写了一段代码,其中有一个数据: unsigned char buf[4096]; // data in chunks of size 4k unsigned counter[256]; 我将每 3
这个问题已经有答案了: Ajax too slow - Recursion (1 个回答) 已关闭 5 年前。 所以这件事在我脑海里思考了很长时间,是否 AJAx 中给出的计时器在它必须发送另一个请求
据我所知,在 Linux 中有许多机制可以实现 bottom-halves: 软中断 任务 工作队列 线程中断 ( request_threaded_irq() ) 它们在可调度性方面都有自己的特点。
根据这个问题here使用 pthread_spin_lock 锁定关键部分是危险的,因为线程可能会被调度程序中断,而其他线程可能会在该资源上保持旋转状态。 假设我决定从 pthread_spin_lo
从SLF4J页面我明白了这一点 The purpose of slf4j-log4j12 module is to delegate or redirect calls made to an SLF4
我在我的项目中使用了 xuggle library 将视频从 mp4 转码为 flv。我也使用 slf4j 库 来支持日志结束。 import com.xuggle.mediatool.IMediaR
我是一名优秀的程序员,十分优秀!