Saya memiliki tabel innoDB yang mencatat pengguna online. Itu diperbarui pada setiap halaman refresh oleh pengguna untuk melacak halaman mana mereka berada dan tanggal akses terakhir mereka ke situs. Saya kemudian memiliki cron yang berjalan setiap 15 menit untuk HAPUS catatan lama. Saya mendapat 'Deadlock ditemukan ketika mencoba untuk mendapatkan …
Saya tidak begitu mengerti perbedaan antara Task.Waitdan await. Saya memiliki sesuatu yang mirip dengan fungsi-fungsi berikut dalam layanan ASP.NET WebAPI: public class TestController : ApiController { public static async Task<string> Foo() { await Task.Delay(1).ConfigureAwait(false); return ""; } public async static Task<string> Bar() { return await Foo(); } public async static …
POSIX memungkinkan mutex bersifat rekursif. Itu berarti utas yang sama dapat mengunci mutex yang sama dua kali dan tidak akan menemui jalan buntu. Tentu saja itu juga perlu membuka kuncinya dua kali, jika tidak, tidak ada utas lain yang dapat memperoleh mutex. Tidak semua sistem yang mendukung pthreads juga mendukung …
Saat menulis aplikasi multi-utas, salah satu masalah paling umum yang dialami adalah kebuntuan. Pertanyaan saya kepada komunitas adalah: Apa itu jalan buntu? Bagaimana Anda mendeteksi mereka? Apakah Anda menanganinya? Dan akhirnya, bagaimana Anda mencegahnya terjadi?
Saya memiliki empat tes berikut dan yang terakhir hang saat saya menjalankannya. Mengapa ini terjadi: [Test] public void CheckOnceResultTest() { Assert.IsTrue(CheckStatus().Result); } [Test] public async void CheckOnceAwaitTest() { Assert.IsTrue(await CheckStatus()); } [Test] public async void CheckStatusTwiceAwaitTest() { Assert.IsTrue(await CheckStatus()); Assert.IsTrue(await CheckStatus()); } [Test] public async void CheckStatusTwiceResultTest() { Assert.IsTrue(CheckStatus().Result); // …
Akankah kode berikut mengakibatkan kebuntuan menggunakan C # di .NET? class MyClass { private object lockObj = new object(); public void Foo() { lock(lockObj) { Bar(); } } public void Bar() { lock(lockObj) { // Do something } } }
Saya memiliki proses dengan Select yang membutuhkan waktu lama untuk menyelesaikannya, dengan urutan 5 hingga 10 menit. Saat ini saya tidak menggunakan NOLOCK sebagai petunjuk untuk mesin database MS SQL. Pada saat yang sama kami memiliki proses lain yang melakukan pembaruan dan memasukkan ke dalam database yang sama dan tabel …
Saya menemukan beberapa praktik terbaik untuk pemrograman asinkron menggunakan c # 's async/ awaitkeywords (Saya baru mengenal c # 5.0). Salah satu saran yang diberikan adalah sebagai berikut: Stabilitas: Ketahui konteks sinkronisasi Anda ... Beberapa konteks sinkronisasi non-reentrant dan single-threaded. Ini berarti hanya satu unit pekerjaan yang dapat dijalankan dalam …
Dari aplikasi .NET 3.5 / C #, saya ingin menangkapnya SqlExceptiontetapi hanya jika hal itu disebabkan oleh kebuntuan pada contoh SQL Server 2008. Pesan kesalahan tipikal adalah Transaction (Process ID 58) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. …
Saya mendapatkan kesalahan C ++ dengan threading: terminate called without an active exception Aborted Ini kodenya: #include <queue> #include <thread> #include <mutex> #include <condition_variable> template<typename TYPE> class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &operator<<(TYPE &other) { std::unique_lock<std::mutex> mtx_lock(mtx); while(buffer.size()>=max_buffer_size) stop_if_full.wait(mtx_lock); buffer.push(std::move(other)); …
Saya ingin menjelaskan jalan buntu threading untuk pemula. Saya telah melihat banyak contoh kebuntuan di masa lalu, beberapa menggunakan kode dan beberapa menggunakan ilustrasi (seperti 4 mobil terkenal ). Ada juga masalah klasik yang mudah menemui jalan buntu seperti The Dining Philosophers , tetapi ini mungkin terlalu rumit untuk dipahami …
Tertutup . Pertanyaan ini perlu lebih difokuskan . Saat ini tidak menerima jawaban. Ingin memperbaiki pertanyaan ini? Perbarui pertanyaan sehingga hanya berfokus pada satu masalah dengan mengedit posting ini . Tutup 5 tahun lalu . Perbaiki pertanyaan ini Saya baru-baru ini mendapatkan pertanyaan ini dalam sebuah wawancara. Saya menjawab bahwa …
Saya menemukan situasi yang aneh di mana menggunakan aliran paralel dengan lambda di penginisialisasi statis membutuhkan waktu yang tampaknya selamanya tanpa pemanfaatan CPU. Berikut kodenya: class Deadlock { static { IntStream.range(0, 10000).parallel().map(i -> i).count(); System.out.println("done"); } public static void main(final String[] args) {} } Ini tampaknya mereproduksi kasus uji minimum …