Algoritma Ostrich

Dalam ilmu komputer, algoritma ostrich adalah strategi mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang terjadi - "menempel kepala di pasir dan berpura-pura bahwa tidak ada masalah". Dengan mengasumsikan bahwa lebih efektif untuk memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya.

Pendekatan ini dapat digunakan dalam menangani deadlock pada pemrograman concurrent jika deadlock diyakini sangat jarang terjadi, dan jika biaya untuk mendeteksi atau pencegahan lebih tinggi.

 Trade-offs 
 Kenyamanan
 Kebenaran

Ini adalah salah satu metode untuk menangani deadlock. Metode lainnya adalah: penghindaran ('s algoritme bankir), pencegahan, deteksi dan pemulihan.

Beberapa algoritma dengan kinerja yang buruk banyak digunakan karena mereka hanya menunjukkan kinerja yang buruk pada kasus yang sengaja dibuat dan jarang terjadi dalam praktik sesungguhnya, contoh-contoh yang khas adalah algoritma simplex dan algoritma pengecekan tipe Standard ML. Masalah seperti integer overflow dalam bahasa pemrograman tetap juga sering diabaikan karena mereka hanya terjadi dalam kasus luar biasa yang tidak muncul untuk input sederhana.

 Pendekatan Hybrid 

Pendekatan Hybrid menggunakan algoritma Ostrich adalah menentukan bahwa kasus sangat jarang tidak terjadi, dan kemudian beralih dari algoritma lain yang lebih kompleks. Trade-off di sini adalah bahwa jika keadaan berubah atau belum ditemukan, masalah langka dapat kembali terjadi.

Contohnya dapat ditemukan di Hard Mengunci Non-ReadWriteLocker   situs ini, di mana Anda memiliki pilihan untuk menentukan di mana deadlock mungkin terjadi, dan kemudian mematikan deteksi kebuntuan setelah Anda menentukan tidak perlu digunakan.

 Referensi 
 Algoritma Ostrich
 Mengunci Non-Hard Read-Write Locker 

Kategori:Concurrent algoritme
Kategori:Algoritme