欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

linux線程和java線程

李思齊1年前9瀏覽0評論

線程(Thread)是操作系統調度的最小單位,而進程(Process)是資源分配的最小單位。線程只是進程的一部分,它們共享相同的內存和其他資源,每個線程都有自己的線程棧和程序計數器(PC)。由于線程共享相同的內存,因此線程間的通信非常容易。當一個線程修改了共享內存時,所有相同內存地址的線程都可以看到這種修改。

// Linux C線程示例
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *thread_func(void *);
int main(int argc, char *argv[]) {
pthread_t thread1, thread2;
int ret = pthread_create(&thread1, NULL, thread_func, NULL);
if (ret) {
printf("Error: 線程創建失敗\n");
exit(EXIT_FAILURE);
}
ret = pthread_create(&thread2, NULL, thread_func, NULL);
if (ret) {
printf("Error: 線程創建失敗\n");
exit(EXIT_FAILURE);
}
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
printf("兩個線程結束\n");
exit(EXIT_SUCCESS);
}
void *thread_func(void *arg) {
printf("線程開始\n");
for (int i=0; i<10; i++) {
printf("線程%d: %d\n", pthread_self(), i);
}
printf("線程結束\n");
pthread_exit(NULL);
}

Java線程有兩種實現方式:繼承Thread類或實現Runnable接口。前者重寫Thread類的run()方法,后者重寫Runnable接口的run()方法,然后將Runnable對象傳遞給Thread構造函數。多數情況下,實現Runnable接口更靈活,因為它可以避免單繼承的限制,并且可以在多個線程之間共享一個Runnable實例。

// Java線程示例
class MyRunnable implements Runnable {
public void run() {
System.out.println("線程開始");
for (int i=0; i<10; i++) {
System.out.println("線程" + Thread.currentThread().getId() + ": " + i);
}
System.out.println("線程結束");
}
}
public class Main {
public static void main(String[] args) {
Thread thread1 = new Thread(new MyRunnable());
Thread thread2 = new Thread(new MyRunnable());
thread1.start();
thread2.start();
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("兩個線程結束");
}
}
下一篇php 世界