Rumah > Soal Jawab > teks badan
public static void main(String[] args){
new Thread(new Runnable() {
@Override
public void run() {
for (int i=0; i<10; i++){
System.out.print(i+" ");
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
for (int i=0; i<10; i++){
System.out.print(i+" ");
}
}
}).start();
}
输出结果如下:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
阿神2017-04-18 10:29:18
Kelajuan pelaksanaan CPU terlalu pantas, dan bilangannya terlalu kecil untuk melihat perbezaannya. Jika saya, sekurang-kurangnya Integer.MaxValue
.
伊谢尔伦2017-04-18 10:29:18
Jika tiada kunci penyegerakan, kedua-dua utas tidak akan mempunyai cetakan silang yang anda nyatakan Keutamaan pelaksanaan utas bergantung pada siapa yang memperoleh sumber CPU dahulu. Mari kita lihat lebih dekat pengetahuan Java multi-threading.
迷茫2017-04-18 10:29:18
Bilangan tetapan adalah terlalu kecil Jika anda menetapkan 100 nombor, anda boleh melihat kesan pencetakan dua benang bersilang (persimpangan di sini bukanlah benang 1 mencetak nombor dan benang 2 mencetak nombor serta-merta, tetapi membahagikan mengikut urutan. segmen). ;CPU mengambil sumber dan melaksanakannya. Jika anda ingin melaksanakan percetakan silang, ia adalah contoh pengeluaran dan pengguna.
PHP中文网2017-04-18 10:29:18
Tambah Thread.sleep(1000) sebelum pernyataan output dalam dua gelung;
ringa_lee2017-04-18 10:29:18
Turutan pelaksanaan utas tidak pasti Sesiapa yang merampas CPU akan melaksanakannya. Susunan sepuluh nombor tidak semestinya milik anda. Selain itu, keutamaan utas tidak dapat menjamin susunan pelaksanaan utas. Cuma benang dengan keutamaan yang lebih tinggi mempunyai kebarangkalian yang lebih tinggi untuk mendapatkan sumber CPU.
迷茫2017-04-18 10:29:18
public void run() {
for (int i=0; i<10; i++){
System.out.print(i+" ");
Sleep(1000);
}
}
Dengan cara ini, kita dapat melihat fenomena cetakan silang yang agak jelas, tetapi sebenarnya, konkurensi bermakna kita tidak dapat mengetahui utas mana yang dilaksanakan dahulu dan utas mana
laksana kemudian, dan ini tidak semestinya akan berlaku menjadi silang. Secara berlebihan, memasukkan m, n arahan pemasangan dua utas masing-masing boleh mempunyai
C_{m+n-1}^{min(m,n)}tertib pelaksanaan peringkat faktor.