我正在使用从 curl POST 发布到 ksql 的 Kafka REST API 如果我不使用 LIMIT20,它会挂起。此外,如果我再次使用它来查询表,它会挂起。我从 python 脚本内部运行它在这里我在行时间之间查询 bcoz 我无法从流中获取最新结果,因为它是连续和持久的。
data = {"ksql":"SELECT MAX(ROWTIME),TIMESTAMPTOSTRING(ROWTIME, 'yyyy-MM-dd HH:mm:ss'),MYFIRMWAREVERSION,MYBASEMACID,BOOTTS,IMEI,PRODDEVICESERIALNUM,RESETREASON FROM NOV_STREAM WHERE TIMESTAMPTOSTRING(ROWTIME, 'yyyy-MM-dd HH:mm:ss') >= '2018-12-11 00:29:30'AND TIMESTAMPTOSTRING(ROWTIME, 'yyyy-MM-dd HH:mm:ss') <= '2018-12-11 23:29:30' GROUP BY ROWTIME,MYFIRMWAREVERSION,MYBASEMACID,BOOTTS,IMEI,PRODDEVICESERIALNUM,RESETREASON LIMIT 20;","streamsProperties":{"ksql.streams.auto.offset.reset": "earliest","format": "json"}}
Run Code Online (Sandbox Code Playgroud) 程序中的两个线程交替打印偶数和奇数,直到 100。我试过这个,它奏效了。有没有办法访问main内部共享数据的值,当值达到100时终止2个线程
#include<stdio.h>
#include<pthread.h>
pthread_t tid[2];
unsigned int shared_data = 0;
pthread_mutex_t mutex;
unsigned int rc;
//prototypes for callback functions
void* PrintEvenNos(void*);
void* PrintOddNos(void*);
void main(void)
{
pthread_create(&tid[0],0,&PrintEvenNos,0)
pthread_create(&tid[1],0,&PrintOddNos,0);
sleep(3);
pthread_join(tid[0],NULL);
pthread_join(tid[1],NULL);
}
void* PrintEvenNos(void *ptr)
{
pthread_mutex_lock(&mutex);
do
{
if(shared_data%2 == 0)
{
printf("Even:%d\n",shared_data);
shared_data++;
} else {
rc=pthread_mutex_unlock(&mutex);//if number is odd, do not print, release mutex
}
} while(shared_data <= 100);
}
void* PrintOddNos(void* ptr1)
{
rc = pthread_mutex_lock(&mutex);
do
{
if(shared_data%2 != 0)
{
printf("odd:%d\n",shared_data);
shared_data++;
} …Run Code Online (Sandbox Code Playgroud)