Tugas yang diberikan adalah untuk mencari bilangan maksimum benang yang boleh dibuat dalam proses
C.Benang ialah proses ringan dan boleh diuruskan secara bebas oleh penjadual. kerana satu Benang ialah komponen proses, jadi berbilang benang boleh dikaitkan dengannya
Berbanding dengan proses, benang bukan sahaja lebih ringan untuk dikendalikan, tetapi juga memerlukan lebih sedikit masa untuk menukar konteks.
Benang memerlukan sumber yang lebih sedikit daripada proses, dan ia juga berkongsi ingatan dengan rakan sebayanya.
benang. Semua rangkaian rakan sebaya peringkat pengguna dianggap sebagai satu tugas oleh sistem pengendalian. kurang Penciptaan dan penamatan mereka mengambil masa.Setiap kali anda melaksanakan program, output sentiasa berbeza.
Buat fungsi void* create(void *) dan biarkan ia kosong kerana ia hanya untuk demonstrasi
Mulakan dua pembolehubah jenis int maks = 0 dan ret = 0 dalam fungsi utama() Simpan bilangan maksimum benang dan nilai pulangan secara berasingan.
Isytiharkan pembolehubah "th" jenis pthread_t.
Jalankan gelung while dengan syarat ret == 0 dan letak ret = pthread_create (&th, NULL, buat, NULL);
Lelaran maks++ di dalam gelung.
Cetak maks di luar gelung.
>#include<pthread.h> #include<stdio.h> /*Leave the function empty as it only demonstrates work of thread*/ void *create ( void *){ } //main function int main(){ int max = 0, ret = 0; pthread_t th; //Iterate until 0 is returned while (ret == 0){ ret = pthread_create (&th, NULL, create, NULL); max++; } printf(" %d ", max); }
5741
Atas ialah kandungan terperinci Dalam bahasa C, bilangan maksimum utas yang boleh dibuat dalam proses. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!