Akhir pekan ini adalah
Joker 2018 , itu menarik! Tapi konferensi itu kaya tidak hanya pidato. Semua perusahaan sponsor mencoba untuk menonjol dengan latar belakang "pesaing" dan kami tidak terkecuali.
Ada banyak hal menarik di stand Sberbank Technologies, tetapi saya ingin berbicara tentang apa yang kami perjuangkan.
Tim pengembang
Apache Ignite kami di SberTech menyiapkan tugas dan mengadakan undian di antara mereka yang berani menyelesaikannya.
Di bawah potongan, Anda akan menemukan tugas, analisis solusi dan kemampuan untuk membenarkan versi solusi Anda sendiri di komentar.
Celakalah pengemis
Petya dan Kolya melakukan satu fitur per hari di
Apache Ignite .
Masha dengan cepat menguji setiap fitur dan mengembalikan komitmen yang mengandung kesalahan.
Setiap komit awal ketiga dari Petit dan kelima dari Kolya berisi kesalahan.
Petya menghabiskan 2 hari ekstra untuk memperbaiki kesalahan, Kolya 3, dan mereka melakukannya lagi
berkomitmen.
Berapa banyak fitur yang akan dikomunikasikan dalam 86 hari kerja jika Masha menyukai Petya,
dan dia memperhatikan kesalahannya hanya pada hari itu ketika hanya dia yang salah?SolusiMulai dari hari ke-13, sebuah siklus terbentuk yang memungkinkan Petya memperbaiki hanya setiap kesalahan kedua.

Villaribo dan Villabaggio
Memproses bank yang tidak dapat diandalkan selama operasi pada sekelompok kunci blok akun
akun dalam urutan deklarasi mereka dalam operasi, yaitu dari kiri ke kanan.
Setiap jalan buntu diselesaikan secara manual oleh spesialis bank dan memakan waktu 10 kali lebih banyak.
waktu dari operasi normal.
Memproses bank yang andal selalu memblokir kunci naik, tetapi menghabiskan 2
kali lebih dari transaksi normal di bank yang tidak dapat diandalkan.
Kedua bank memiliki 10 akun, kunci akun adalah angka dari 1 hingga 10.
Pemrosesan masing-masing bank membutuhkan 12 operasi.
Operasi dilakukan secara paralel, dua sekaligus. Setiap operasi mempengaruhi hingga 3
akun:
- operasi No. 1 (akun: A, B, C), di mana A = i, B = A + 1, C = (A + B)% 10,
- operasi No. 2 (akun: D, E, F), di mana D = 11-i, E = D-1, F = (D + E)% 10,
saya bervariasi dari 1 hingga 6.
Eksekusi dari pasangan operasi berikutnya dimulai hanya setelah penyelesaian penuh
yang sebelumnya.
Kunci diblokir sesuai dengan kebijakan bank, satu di setiap operasi, mulai
dari nomor operasi 1.
Jika kunci sudah dikunci di salah satu operasi, tetapi diharuskan untuk melakukan yang lain,
lalu pertama operasi pertama selesai, lalu yang kedua berlanjut.
Eksekusi paksa dari sepasang operasi dalam mode sekuensial diharapkan terjadi 2 kali lebih lambat daripada secara paralel.
Bank mana dan berapa kali lebih cepat akan menyelesaikan operasi?PetunjukTotal:
- 6 iterasi,
- 12 operasi
- dalam semua operasi kecuali satu, masing-masing 3 kunci.

SolusiJika semua kunci berbeda, eksekusi paralel dimungkinkan.
Jika tidak, maka tidak, dan jalan buntu adalah mungkin.

PerhitunganSebuah bank yang tidak dapat diandalkan dihabiskan untuk transaksi "kebijaksanaan", 2 dalam kasus "kesulitan" dan sebanyak 10 dalam kasus kebuntuan.
Sebuah bank yang andal menghabiskan pada transaksi 2 "tindakan" dan 4 jika terjadi "kesulitan". Kebuntuan yang andal tidak ada.

JawabannyaLengkap pada saat bersamaan.
Risiko Repositori Publik
Serezha adalah seorang programmer yang sangat berpengalaman, sangat berjudi dan serakah tanpa batas.
Suatu ketika dia menemukan kode sumber tote favoritnya di github.
Berapakah taruhan minimum yang dapat dimenangkan Seryozha?Daftar tote yang disederhanakan dilampirkan:
class Bid {
Kiat # 1- 131072?
- Tidak, keluar dari perangkap :)
Kiat # 2Berapakah taruhan minimum yang dapat dimenangkan Seryozha?
Kiat # 3 th1{ bid.restricted = true; bid.checked = true; } ... th2{ while (!bid.checked) { sleep(1); } assert bid.restricted;
Tidak ada jaminan visibilitas yang diharapkan secara intuitif.
Anda dapat menambahkannya sebagai berikut:
volatile boolean checked;
Kiat # 4Berapakah taruhan minimum yang dapat dimenangkan Seryozha?
Jawabannya java.lang.Integer#MIN_VALUE
Namun, "0" dan bahkan "1" dianggap sebagai keputusan yang tepat.
Pemenang
Yang terbaik dari semuanya menyelesaikan masalah
-
Evgeny Zubenko-
Alexander Novikov-
Andrey GolikovOrang-orang mendapat ransel bermerek, kaos dan, tentu saja, buku.