ben şöyle kırılma noktaları ile aşağıdaki kodu çalıştırmak çalışıyorum iş parçacıklı kodundaki tüm kesme noktaları üzerinde durmuyor: Ben kaldırırsanız ...intellij -
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Starting"); //breakpoint here
}
}).start();
int i = 10;
i++; //breakpoint here
Bu kod SADECE i çalıştırdığında ++ kesme noktası isabet Bu, diğer iş parçacığının kesme noktası doğru bir şekilde vurulacaktı. Bu garip davranış neden ortaya çıkıyor?
Şahsen bunun bir yarış durumu olduğuna inanıyorum. Benim durumumda * özgeçmiş * hala yeni iş parçacığı üzerindeki kesme noktasını tetiklemiyor ** değil. Düzeltmenin tek yolu, yeni bir iş parçacığı başlatmadan hemen önce kırılmamanızdır. Sonra her şey çalışıyor. – kervin
Kesme noktalarınızdaki askıya alma politikası 'Hepsi' olarak ayarlanmış mı ('Thread' yerine)? –
Evet hepsi. Sorunu sadece iş parçacığı başlangıcından daha yakın/daha fazla hareket ettirerek tetikleyebilirim, böylece tek başına bir tür yarış durumunu onaylar. – kervin