Pertanyaan yang diberi tag «atomic»

Operasi atom tidak dapat dibagi. Istilah ini digunakan untuk menjelaskan transaksi dalam database, akses tingkat rendah dalam program multithread, dan operasi sistem file, antara lain.


7
Apa perbedaan antara atom / volatil / tersinkronisasi?
Bagaimana cara kerja atom / volatile / tersinkronisasi secara internal? Apa perbedaan antara blok kode berikut? Kode 1 private int counter; public int getNextUniqueIndex() { return counter++; } Kode 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Kode 3 private volatile int counter; public int getNextUniqueIndex() { …

6
Apa arti "atom" dalam pemrograman?
Dalam buku Java Efektif, ia menyatakan: Spesifikasi bahasa menjamin bahwa membaca atau menulis variabel adalah atom kecuali variabelnya bertipe longatau double[JLS, 17.4.7]. Apa arti "atomik" dalam konteks pemrograman Java, atau pemrograman secara umum?
276 java  atomic 


3
Apa itu std :: atomic?
Saya mengerti itu std::atomic<>adalah benda atom. Tetapi atom sampai sejauh mana? Menurut pemahaman saya, operasi bisa bersifat atom. Apa sebenarnya yang dimaksud dengan membuat objek atom? Misalnya jika ada dua utas yang secara bersamaan mengeksekusi kode berikut: a = a + 12; Lalu apakah seluruh operasi (katakanlah add_twelve_to(int)) atomik? Atau …

13
Bisakah num ++ menjadi atom untuk 'int num'?
Secara umum, untuk int num, num++(atau ++num), sebagai operasi baca-modifikasi-tulis, bukan atom . Tapi saya sering melihat kompiler, misalnya GCC , menghasilkan kode berikut untuk itu ( coba di sini ): Karena baris 5, yang sesuai dengan num++satu instruksi, dapatkah kita menyimpulkan bahwa num++ atom dalam hal ini? Dan jika …

8
Apakah! = Periksa utas aman?
Saya tahu bahwa operasi gabungan seperti i++tidak aman karena melibatkan beberapa operasi. Tetapi apakah memeriksa referensi dengan sendirinya operasi yang aman? a != a //is this thread-safe Saya mencoba memprogram ini dan menggunakan beberapa utas tetapi tidak gagal. Saya kira saya tidak bisa mensimulasikan balapan di mesin saya. EDIT: public …

5
Kapan menggunakan volatile dengan multi threading?
Jika ada dua utas yang mengakses variabel global, maka banyak tutorial mengatakan membuat variabel tidak stabil untuk mencegah kompiler melakukan caching variabel dalam register dan karenanya tidak diperbarui dengan benar. Namun dua utas yang mengakses variabel bersama adalah sesuatu yang membutuhkan perlindungan melalui mutex bukan? Tetapi dalam kasus itu, antara …

6
AtomicInteger lazySet vs. set
Apa perbedaan antara metode lazySetdan ? The dokumentasi tidak memiliki banyak untuk mengatakan tentang :setAtomicIntegerlazySet Akhirnya disetel ke nilai yang diberikan. Tampaknya nilai yang disimpan tidak akan langsung disetel ke nilai yang diinginkan, tetapi akan dijadwalkan untuk disetel di masa mendatang. Tapi, apa kegunaan praktis dari metode ini? Ada contoh?
116 java  concurrency  atomic 


4
Apakah file menambahkan atom di UNIX?
Secara umum, apa yang dapat kita anggap remeh ketika kita menambahkan file di UNIX dari berbagai proses? Apakah mungkin kehilangan data (satu proses menimpa perubahan yang lain)? Apakah mungkin data rusak? (Misalnya, setiap proses menambahkan satu baris per penambahan ke file log, apakah mungkin dua baris terkoyak?) Jika penambahan tidak …

3
biaya operasi atom
Berapa biaya operasi atom (salah satu dari perbandingan-dan-tukar atau penambahan / pengurangan atom)? Berapa siklus yang dikonsumsi? Apakah akan menjeda prosesor lain di SMP atau NUMA, atau akan memblokir akses memori? Apakah itu akan membersihkan buffer pemesanan ulang di CPU yang rusak? Efek apa yang akan terjadi pada cache? Saya …

5
Memahami std :: atomic :: bandingkan_exchange_weak () di C ++ 11
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak()adalah salah satu primitif pertukaran-perbandingan yang disediakan dalam C ++ 11. Ini lemah dalam arti mengembalikan salah meskipun nilai objek sama dengan expected. Ini karena kegagalan palsu pada beberapa platform di mana urutan instruksi (bukan satu seperti pada x86) digunakan untuk mengimplementasikannya. Pada …


2
Inisialisasi vektor atom
Mempertimbangkan: void foo() { std::vector<std::atomic<int>> foo(10); ... } Apakah konten foo sekarang valid? Atau apakah saya perlu secara eksplisit mengulang dan menginisialisasi mereka? Saya telah memeriksa Godbolt dan tampaknya baik-baik saja, namun standar tampaknya sangat membingungkan pada titik ini. The std :: vector konstruktor mengatakan itu menyisipkan default-dimasukkan contoh std::atomic<int>, …
12 c++  vector  atomic 

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.