‫Selamat datang kembali dan video ini, kita akan melihat ke dalam utas dan oleh karena itu kami hanya akan
‫melakukan konsep dasar utas di mana Anda akan melihat cara membuat utas dan cara membuat banyak
‫utas.
‫Jadi mari kita mulai dengan menggunakan garis kanan konsol dengan cara khusus ini.
‫Jadi saya akan membuat beberapa dunia, misalnya, empat dunia, dan saya akan menyapa, dunia
‫satu, halo, dunia dua, tiga dan empat.
‫Jadi mereka adalah dunia.
‫Jika kita menjalankannya, tentu saja kita perlu, pertama-tama, konsol reline.
‫Jadi konsol tetap terbuka dan tetap terjaga.
‫Jika kita menjalankannya, maka sangat mendasar apa yang akan terjadi.
‫Jadi mereka hanya akan mencetak Hello World empat kali di layar dan kami memiliki dunia satu, dua, tiga
‫dan empat.
‫Baiklah.
‫Jadi itu bukan hal baru.
‫Kami telah melihat itu banyak sebelumnya.
‫Ada sesuatu yang disebut utas, kelas yang disebut utas.
‫Dan jika kita ingin menggunakannya, kita perlu menggunakan namespace threading.
‫Jadi menggunakan sistem dot threading dan hanya itu.
‫Jadi sekarang kita dapat menggunakan utas sehingga saya dapat melanjutkan dan menggunakan kelas utas dan seperti yang Anda lihat,
‫membuat dan mengontrol utas, menetapkan prioritasnya, dan mendapatkan statusnya.
‫Jadi yang bisa kita lakukan sekarang adalah, misalnya, menggunakan utas yang tidur untuk waktu yang terbatas.
‫Jadi katakanlah selama 1000 milidetik.
‫Jadi yang akan dilakukan adalah menghentikan sementara seluruh program atau thread kita dalam hal ini,
‫ancaman utama atau ancaman yang ada selama satu detik setelah bagaimana kata satu tercetak di layar.
‫Dan kita benar-benar dapat melakukannya setelah setiap pernyataan.
‫Jadi saya akan mengatakan hanya tidur untuk waktu tertentu.
‫Dan di sanalah kami.
‫Halo.
‫Kami satu, dua, tiga dan empat.
‫Jadi berhenti jika saya mengkliknya.
‫Tetapi umumnya Anda dapat melihatnya menunggu selama satu detik dan setelah detik itu, ia mencetak hal berikutnya.
‫Jadi apa yang dilakukannya, itu benar-benar menghentikan seluruh utas, jadi menangguhkan ancaman saat ini untuk jumlah
‫milidetik tertentu atau tertentu.
‫Jadi itu adalah sesuatu yang dapat Anda lakukan jika Anda ingin melakukan sesuatu setelah jangka waktu tertentu.
‫Namun perlu diketahui bahwa ini benar-benar menghentikan ancaman utama.
‫Jadi tidak ada yang harus dilakukan, katakanlah, di utas UI dapat dilakukan.
‫Kami tidak menggunakan UI di sini.
‫Kami menggunakan aplikasi konsol dalam kasus ini.
‫Tetapi jika Anda menggunakan WP, misalnya, untuk memiliki UI dan Anda mengurai utas utama selama satu detik, itu berarti
‫UI tidak akan merespons selama satu detik penuh.
‫Dan itu adalah sesuatu yang tidak diinginkan pengguna.
‫Dan itu akan menjadi perilaku yang sangat buruk yang seharusnya tidak Anda lakukan.
‫Tapi itu umumnya hanya bagi Anda untuk memahami apa yang dapat Anda lakukan dengan utas di sini, kan.
‫Jadi Anda dapat menimbulkan ancaman untuk jangka waktu tertentu.
‫Tapi kami hanya menggunakan satu utas.
‫Itu adalah ancaman utama.
‫Dan jika Anda ingin mengetahui lebih lanjut tentang itu, maka Anda harus men-debug.
‫Dan untuk melakukannya, kami menambahkan poin di sini.
‫Jadi hanya untuk men-debug titik di mana Anda cukup menekan bilah itu di sini di sebelah kiri, katakanlah tambahkan baris
‫sembilan di mana metode utama dimulai, dan kemudian Anda memulai program dan seperti yang Anda lihat, tidak ada yang akan ditampilkan
‫karena berhenti di sini .
‫Jadi di situlah kita saat ini.
‫Di situlah kursor berada.
‫Dan untuk sekarang melihat tugas, kita harus pergi ke jendela debug dan kemudian pilih ancaman di sini.
‫Atau Anda bisa menekan kontrol semua H.
‫Jadi saya akan membuka utas.
‫Dan seperti yang Anda lihat, mereka melayang untuk saya sekarang dan saya akan menempatkannya di sini di sisi
‫kiri.
‫Dan sekarang Anda dapat melihat utas yang sedang berjalan.
‫Dan dalam kasus kami, kami hanya melihat utas utama.
‫Jadi hanya ada satu utas dan memiliki gagasan nol yang dikelola.
‫Jadi itulah ancaman utama kami dan umumnya melakukan segala sesuatu yang ada dalam metode utama kami.
‫Jadi jika saya pergi ke langkah berikutnya.
‫Seperti yang Anda lihat, kami masih di utas utama dan kami menunggu satu detik, kami melihat bagaimana dunia sebenarnya jika kami
‫membukanya, mereka dapat melihatnya.
‫Jadi sekarang ini adalah dunia total.
‫Tiga, kita tidur selama satu detik dan kemudian menunggu berjam-jam untuk melakukan langkah berikutnya sehingga Anda dapat memiliki 10 untuk
‫melanjutkan ke langkah berikutnya.
‫Dan kemudian ia menampilkan Helliwell sesaat kemudian.
‫Ya, untuk itu kita semua.
‫Dan kemudian garis merah ini muncul.
‫Jadi sekarang saya hanya akan menekan sesuatu seperti enter atau apapun dan di sini dan pergi ke langkah berikutnya.
‫Dan seperti yang Anda lihat, kami masih dalam ancaman utama.
‫Dan program kami ditutup, jadi tidak ada ancaman lagi, jadi itu bagus dan semuanya, tapi itu hanya ancaman utama kami dan
‫itu sedikit membosankan.
‫Kami ingin melihat cara membuat utas, dan untuk itulah kami di sini.
‫Jadi mari kita lanjutkan dan buat beberapa ancaman sendiri, karena yang terjadi di sini adalah bahwa hal itu dilakukan
‫secara berurutan.
‫Jadi langkah demi langkah, satu baris demi satu.
‫Tetapi jika kita ingin melakukan sesuatu secara paralel, kita dapat membuat utas kita sendiri karena kita tidak ingin itu berjalan
‫di utas utama.
‫Tapi kami ingin berjalan paralel.
‫Jadi yang akan saya lakukan adalah membuat ancaman baru di sini.
‫Hanya akan mengatakan baru, maka saya akan menyebutnya ancaman.
‫Jadi saya hanya menggunakan klausa ancaman di sini.
‫Dan Anda membutuhkan tanda kurung dan tanda kurung lagi.
‫Dan setelah kurung itu, yang kedua di sini, Anda menggunakan kurung sinus dan kurung kurawal yang sama dan lebih besar.
‫Dan kemudian setelah braket di sini ditutup, Anda harus memulai.
‫Jadi begitulah cara Anda memulai utas.
‫Jadi saya telah membuat utas baru dan langsung dimulai karena saya menelepon mulai di sini.
‫Itu hanya metode start yang memanggil kami sistem operasi untuk mengubah status instance saat ini ke
‫status thread yang berjalan.
‫Jadi utas ini akan menjalankan status utas ini, yang berarti ia hanya akan mengeksekusi apa pun yang ada
‫di dalam tanda kurung kurawalnya.
‫Jadi di situlah kita bisa menambahkan kode kita yang ingin kita jalankan kapan pun ancaman ini dipanggil.
‫Jadi katakanlah utas ini di sini adalah utas kami.
‫Jadi saya hanya akan menulis sesuatu seperti Thread satu, CW thread satu.
‫Dan di atas itu, aku akan tidur sebentar.
‫Jadi tidurlah selama 1000 milidetik, yang merupakan satu detik.
‫Jadi itulah yang akan dilakukan utas ini.
‫Dan yang akan saya lakukan adalah menempatkan beberapa utas di bawahnya.
‫Jadi utas satu, dua, tiga dan empat.
‫Jadi saya akan mengganti nama itu dan saya akan berkomentar.
‫Yang kita miliki sebelumnya, jadi konsol baris yang benar dan sekarang mari kita jalankan.
‫Dan di sanalah kita, seperti yang Anda lihat, itu muncul pada waktu yang sama, jadi ia menunggu selama satu detik dan kemudian
‫mereka semua muncul pada waktu yang sama.
‫Jadi apa yang terjadi di sana?
‫Biarkan saya benar-benar masuk ke titik itu di sini dan mungkin intinya.
‫Ya, di sana.
‫Jadi mari kita jalankan lagi.
‫Sekarang kita melihat program kita berhenti di sini, jadi itulah tempatnya, tetapi pada saat yang sama di
‫sini, di jendela utas di sini di bagian bawah, Anda dapat melihat bahwa ada dua utas yang sudah dibuka dan utas pekerja
‫tanpa nama.
‫Dan ancaman pekerja lain tanpa nama juga.
‫Jadi kami memiliki ancaman baru yang sudah berjalan.
‫Dan kemudian salah satu ancaman lainnya dibuka juga.
‫Dan seperti yang Anda lihat, ancaman utama juga.
‫Jadi ada tiga ancaman sekaligus.
‫Sekarang, mari kita pergi ke langkah berikutnya.
‫Seperti yang Anda lihat, pada saat itu, tiba-tiba ada empat ancaman.
‫Dan dengan demikian itulah yang keempat yang kita miliki di sini.
‫Jadi ketika yang pertama dimulai, mungkin saja yang kedua sudah siap, tetapi yang lain belum
‫siap.
‫Dan sekarang pada titik di mana ancaman menyapu seribu milidetik setelah satu milidetik berlalu atau bahkan kurang,
‫Anda dapat melihat bahwa ancaman lain sudah dimulai.
‫Jadi kami memiliki empat utas yang berjalan pada saat yang bersamaan.
‫Jadi kami memiliki solusi multi threading di sini.
‫Dan jika saya melakukan langkah selanjutnya, seperti yang Anda lihat, ancaman dua, tiga dan empat sudah ditampilkan.
‫Tapi ancaman garis kanan konsol satu, seperti yang Anda lihat, belum ditampilkan.
‫Jadi mereka berjalan secara paralel, tetapi mereka tidak sepenuhnya akurat, seperti yang Anda lihat.
‫Jadi mungkin ada sedikit perbedaan dalam waktu yang mereka butuhkan untuk dieksekusi.
‫Jadi saya akan pergi ke langkah berikutnya seperti jalan ini di sini.
‫Dan seperti yang Anda lihat sekarang, ancaman satu juga sudah selesai.
‫Jadi meskipun ancaman.
‫Berada dalam urutan tertentu di sini, dalam kode saya, mereka dimulai kurang lebih pada saat yang sama dan seperti yang
‫Anda lihat, tidak perlu dalam urutan yang tepat seperti yang kita duga.
‫Jadi itu tidak akan selesai dengan urutan yang tepat seperti yang kita posisikan di sini.
‫Tetapi berdasarkan seberapa cepat mereka dapat menyelesaikan atau mengeksekusi kode apa pun.
‫Jadi bisa saja kode ini membutuhkan sedikit lebih lama dari yang itu atau lebih lama dari yang lain.
‫Jadi itulah yang harus Anda ambil dari ini sehingga Anda dapat bekerja dengan ancaman, tetapi Anda harus
‫sangat, sangat berhati-hati karena ada kemungkinan banyak hal yang bisa salah.
‫Dan saya akan membahas beberapa di antaranya dan saya akan menunjukkan atau memberi Anda dan saya akan membahas beberapa di
‫antaranya.
‫Dan saya akan berbagi link dengan Anda juga.
‫Kita bisa membaca lebih banyak tentang itu.
‫Begitulah kira-kira ide dasar bagaimana menciptakan ancaman.
‫Seperti yang Anda lihat, begitulah cara Anda mengatur segalanya.
‫Jadi ancaman umumnya adalah bagian kecil dari pekerjaan atau bagian dari pekerjaan yang dieksekusi dan Anda dapat mengeksekusi banyak
‫hal pada saat yang sama jika Anda memiliki beberapa kursus di prosesor Anda.
‫Jadi katakanlah Anda memiliki prosesor empat inti, maka empat utas atau empat prosesor
‫sekaligus dapat dieksekusi.
‫Jika Anda memiliki, katakanlah, hanya satu prosesor, maka hanya satu utas atau satu tugas pada saat yang dapat dieksekusi tidak akan pernah
‫terjadi bahwa mereka akan dieksekusi secara paralel karena prosesor yang satu ini hanya melakukan satu hal tertentu pada
‫satu waktu.
‫Itu berarti bahwa jika Anda tahu bahwa Anda bekerja dengan prosesor multicore atau aplikasi Anda akan
‫berjalan pada prosesor multicore, Anda dapat bekerja dengan banyak ancaman.
‫Jika tidak, Anda mengalami masalah.
‫Namun secara umum cara kerjanya, jika hanya memiliki satu core, maka thread utama akan berjalan.
‫Dan hanya jika ancaman utama menganggur, maka ia akan melanjutkan dan melakukan hal-hal lain sehingga tidak menjalankan ancaman
‫lain.
‫Katakanlah Anda memiliki UI dan pada UI itu Anda hanya menampilkan sesuatu, Anda memiliki tombol.
‫Kemudian jika Anda mengarahkan kursor ke tombol, itu akan mengubah penampilannya, hal-hal seperti itu.
‫Itu adalah sesuatu yang dilakukan oleh ancaman utama.
‫Tetapi jika ancaman utama tidak sibuk, maka ancaman lainnya akan dimulai.
‫Jadi jika Anda memiliki sesuatu yang harus dijalankan di latar belakang, maka itu akan dilakukan setiap kali
‫ancaman satu, ancaman utama tidak sibuk atau ancaman nol sebenarnya tahun ini.
‫Jadi itu tentang ancaman.
‫Dan kami akan melihat lebih banyak ancaman, tentu saja.
‫Tetapi secara umum, itulah yang ingin saya tunjukkan kepada Anda untuk memulai.