إدراك التأثير:
رجل الخيط تحطم: (موضوع واحد)
عندما يقوم الخيط الرئيسي بمعالجة طلب لتحديث الصورة ، لا يمكنه قبول الطلبات الأخرى ، وبالتالي الوقوع في حالة حلقة ميتة.
ارسم الصور
استيراد java.awt.graphics ؛ استيراد java.awt.image ؛ استيراد java.awt.toolkit ؛ import javax.swing.jpanel ؛ cartonperson من الطبقة العامة يمتد jpanel الأدوات runnable {image img [] = صورة جديدة [6] السرعة) {this.speed = speed ؛ img [0] = toolkit.getDefaultToolkit (). getImage ("1.png") ؛ img [1] = toolkit.getDefaultToolkit (). "3.png") ؛ img [3] = toolkit.getDefaultToolkit (). getImage ("4.png") ؛ img [4] = Toolkit.getDefaultToolkit () Run () {بينما (صحيح) {try {repaint () ؛ thread.sleep (100) ؛} catch (interruptedException e) { getWidth () ، getheight () ، this) ؛ // system.out.println (index) ؛ if (index == 5) {index = 0 ؛} آخر {index ++ ؛}}}}تخطيط نموذج واحد
استيراد java.awt.event.actionevent ؛ استيراد java.awt.event.actionListener ؛ استيراد javax.swing.jbutton ؛ استيراد javax.swing.jframe ؛ فئة عامة singlethreadcarton JButton ("Wait") ؛ Jbutton Brew = New JButton ("Conte") ؛ SingleThreadCarton () {init () ؛ this.Settitle ("Breaking Threadman") ؛ this.setsize (600 ، 500) ؛ this.setResizible (true) ؛ this.setLocationRelativeto (null) ؛ this.setDefaultCloseOperation (exit_on_close) ؛ this.setVisible (true) ؛} void init () 160) ؛ bstart.setbounds (260 ، 280 ، 80 ، 30) ؛ bpause.setBounds (260 ، 320 ، 80 ، 30) ؛ bresume.setbounds (260 ، 360 ، 80 ، 30 ، 30) ؛ bresume.setbounds (260 ، 360 ، 80 ، 30) ؛ 360 ، 80 ، 30) ؛ bresume.setbounds (260 ، 360 ، 80 ، 30) ؛ bresume.addactylistener (260 ، 360 ، 80 ، 30) ؛ stubif (نتائج التشغيل:
بعد النقر فوق الزر "ابدأ" ، يتعطل البرنامج.
تخطيط نموذج متعدد الخيوط
استيراد java.awt.event.actionevent ؛ استيراد java.awt.event.actionlistener ؛ import javax.swing.jbutton ؛ استيراد javax.swing.jframe ؛ فئة عامة multiThreadcarton يمتد Jframe {cartonperson p1 ؛ JButton ("Wait") ؛ Jbutton Brew = New JButton ("Conte") ؛ MultiThreadCarton () {init () 500) ؛ this.setResizible (true) ؛ this.setLocationRelativeto (null) ؛ this.setDefaultCloseOperation (exit_on_close) ؛ this.setVisible (true) ؛} void init () 160) ؛ bstart.setbounds (260 ، 280 ، 80 ، 30) ؛ bpause.setBounds (260 ، 320 ، 80 ، 30) ؛ bresume.setbounds (260 ، 360 ، 80 ، 30 ، 30) ؛ bresume.setbounds (260 ، 360 ، 80 ، 30) ؛ 360 ، 80 ، 30) ؛ bresume.setbounds (260 ، 360 ، 80 ، 30) ؛ Bresume.AddActionListener (260 ، 360 ، 80 ، 30) ؛ Bresume.AddActionListener (260 ، 360 ، 80 ، 30) ؛ 30) ؛ Bresume.addActionListener (260 ، 360 ، 80 ، 30) ؛ Bresume.addActionListener (260 ، 360 ، 80 ، 30) ؛ Bresume.AddActionListener (260 ، 360 ، 80 ، 30) ؛ Bresume.Addacteener (260 ، 360 ، 80 ، 30) ؛ Bresume. 30) ؛ bresume.addActionListener (260 ، 360 ، 80 ، 30) ؛ bresume.addactylistener (260 ، 360 ، buttonclick تنفذ ActionListener {OverRidepublic void actionperformed (Actionevent e) {// todo methoded addo addo stubif ( multithreadcarton () ؛}}نتيجة التشغيل: كما هو موضح في الشكل العلوي.
ما سبق هو وصف مثال بطل الخيط الذي يمكن أن يركض في الأرجوحة في جافا هذه المرة. شكرا لدعمكم ل wulin.com.
تم استنساخ هذه المقالة على: https://www.idaobin.com/archives/841.html