[Owasp-turkey] Arızayı Bul #6

Mehmet Salih YILDIRIM linux at isadamlari.org
Fri Dec 4 14:30:40 EST 2009


Soru aşırı genel olmakla beraber,

//sample critical section 1
syncronized (session1){
    // ...
    // ..
    // .
    syncronized(session2){
       //...
    }
}
//sample critical section2
syncronized (session2){
    // ...
    // ..
    // .
    syncronized(session1){
       //...
    }
}

durumunda kullanılırsa, bir thread CS1 e girip, bir başka thread aynı 
anda CS2'ye girerse, üzerine bunlar hold and wait yaparsa, bunun da 
üstüne işletim sisteminin scheduling management kısmı kalitesizse 
deadlock olur efendim. Muhtemelen aranan cevap bu değil ama soru çok 
genel olduÄŸundan bu kadar yazabildim ancak.

Bu senaryoya göre çözüm bir kaç şekilde olabilir, birincisi thread 
lerden bir tanesini öldürmek :D
ikincisi nested syncronized kullanmamak olabilir.
Üçüncü çözüm en güzeli, bu iki critical section'ı aynı lock değişkeni 
koruyabilir. Böylece birisine bir process girdiğinde diğerine başka bir 
process giremeyecektir.  



Bedirhan Urgun wrote:
>
> arizalara bi tane daha.
>  
> /synchronized (session) {
>  // ...
> }/
>  
> yukaridaki Java kod parcasindaki muhtemel problem ne olabilir ve nasil 
> duzeltilebilir?
>  
> bedirhan
> ------------------------------------------------------------------------
>
> _______________________________________________
> Owasp-turkey mailing list
> Owasp-turkey at lists.owasp.org
> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>   
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: https://lists.owasp.org/pipermail/owasp-turkey/attachments/20091204/7ac37ee9/attachment.html 


More information about the Owasp-turkey mailing list