最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java查看和修改線程優(yōu)先級操作詳解

 更新時間:2022年08月22日 11:53:23   作者:小虛竹and掘金  
JAVA中每個線程都有優(yōu)化級屬性,默認情況下,新建的線程和創(chuàng)建該線程的線程優(yōu)先級是一樣的。本文將為大家詳解Java查看和修改線程優(yōu)先級操作的方法,需要的可以參考一下

查看和修改線程優(yōu)先級

1.題目

JAVA中每個線程都有優(yōu)化級屬性,默認情況下,新建的線程和創(chuàng)建該線程的線程優(yōu)先級是一樣的。當(dāng)線程調(diào)度器選擇要運行的線程時,會選擇優(yōu)先級高的線程。

實現(xiàn):查看和修改線程的優(yōu)先級

2.解題思路

創(chuàng)建一個類:ThreadPriorityTest,繼承了JFrame。用來界面顯示當(dāng)前線程組中運行的線程。

定義2個方法:

  • do_this_windowActivated():用來監(jiān)聽窗體激活事件
  • do_button_actionPerformed() :用來單擊修改按鈕事件,獲取用戶輸入的優(yōu)先級和選擇的行,修改線程優(yōu)先級。

Thread是程序中的執(zhí)行線程。JAVA虛擬機允許應(yīng)用程序并發(fā)地運行多個執(zhí)行線程。

3.代碼詳解

package com.xiaoxuzhu;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
/**
 * Description: 
 *
 * @author xiaoxuzhu
 * @version 1.0
 *
 * <pre>
 * 修改記錄:
 * 修改后版本	        修改人		修改日期			修改內(nèi)容
 * 2022/5/11.1	    xiaoxuzhu		2022/5/11		    Create
 * </pre>
 * @date 2022/5/11
 */

public class ThreadPriorityTest extends JFrame {

    /**
     *
     */
    private static final long serialVersionUID = 1127454227002083871L;
    private JPanel contentPane;
    private JTable table;
    private JTextField textField;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Throwable e) {
            e.printStackTrace();
        }
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ThreadPriorityTest frame = new ThreadPriorityTest();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ThreadPriorityTest() {
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowActivated(WindowEvent e) {
                do_this_windowActivated(e);
            }
        });
        setTitle("查看和修改線程優(yōu)化級");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        contentPane.add(panel, BorderLayout.SOUTH);

        JLabel label = new JLabel("新優(yōu)先級(1~10)");
        label.setFont(new Font("微軟雅黑", Font.PLAIN, 16));
        panel.add(label);

        textField = new JTextField();
        textField.setFont(new Font("微軟雅黑", Font.PLAIN, 16));
        panel.add(textField);
        textField.setColumns(10);

        JButton button = new JButton("修改");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                do_button_actionPerformed(e);
            }
        });
        button.setFont(new Font("微軟雅黑", Font.PLAIN, 16));
        panel.add(button);

        JScrollPane scrollPane = new JScrollPane();
        contentPane.add(scrollPane, BorderLayout.CENTER);

        table = new JTable();
        table.setFont(new Font("微軟雅黑", Font.PLAIN, 14));
        table.setRowHeight(30);
        JTableHeader header = table.getTableHeader();
        header.setFont(new Font("微軟雅黑", Font.PLAIN, 16));
        header.setPreferredSize(new Dimension(header.getWidth(), 35));
        scrollPane.setViewportView(table);
    }

    protected void do_this_windowActivated(WindowEvent e) {
        ThreadGroup group = Thread.currentThread().getThreadGroup();// 獲得當(dāng)前線程所在線程組
        Thread[] threads = new Thread[group.activeCount()];// 使用數(shù)組保存活動狀態(tài)的線程
        group.enumerate(threads);// 獲得所有線程
        DefaultTableModel model = (DefaultTableModel) table.getModel(); // 獲得表格模型
        model.setRowCount(0); // 清空表格模型中的數(shù)據(jù)
        model.setColumnIdentifiers(new Object[] { "線程ID", "線程名稱", "優(yōu)先級" }); // 定義表頭
        for (Thread thread : threads) {// 增加行數(shù)據(jù)
            model.addRow(new Object[] { thread.getId(), thread.getName(), thread.getPriority() });
        }
        table.setModel(model);// 更新表格模型
    }

    protected void do_button_actionPerformed(ActionEvent e) {
        String text = textField.getText();
        Integer priority = Integer.parseInt(text);
        int selectedRow = table.getSelectedRow();
        DefaultTableModel model = (DefaultTableModel) table.getModel();
        model.setValueAt(priority, selectedRow, 2);
        repaint();
    }
}

線程列表和對應(yīng)優(yōu)先級:

修改線程優(yōu)先級:

修改結(jié)果:

到此這篇關(guān)于Java查看和修改線程優(yōu)先級操作詳解的文章就介紹到這了,更多相關(guān)Java線程優(yōu)先級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring?retry實現(xiàn)方法請求重試的使用步驟

    spring?retry實現(xiàn)方法請求重試的使用步驟

    這篇文章主要介紹了spring?retry實現(xiàn)方法請求重試及使用步驟,本文分步驟通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Java學(xué)習(xí)之Lambda表達式的使用詳解

    Java學(xué)習(xí)之Lambda表達式的使用詳解

    Lambda表達式是Java SE 8中一個重要的新特性,允許通過表達式來代替功能接口。本文將通過一些簡單的示例和大家講講Lamda表達式的使用,感興趣的可以了解一下
    2022-12-12
  • java面向?qū)ο笤O(shè)計原則之單一職責(zé)與依賴倒置原則詳解

    java面向?qū)ο笤O(shè)計原則之單一職責(zé)與依賴倒置原則詳解

    這篇文章主要介紹了java面向?qū)ο笤O(shè)計原則之單一職責(zé)與依賴倒置原則的分析詳解,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進步早日升職加薪
    2021-10-10
  • Java設(shè)計模式之工廠模式實現(xiàn)方法詳解

    Java設(shè)計模式之工廠模式實現(xiàn)方法詳解

    這篇文章主要介紹了Java設(shè)計模式之工廠模式實現(xiàn)方法,結(jié)合實例形式較為詳細的分析了工廠模式的分類、原理、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-12-12
  • Java獲取resources下文件路徑的幾種方法及遇到的問題

    Java獲取resources下文件路徑的幾種方法及遇到的問題

    這篇文章主要給大家介紹了關(guān)于Java獲取resources下文件路徑的幾種方法及遇到的問題,在Java開發(fā)中經(jīng)常需要讀取項目中resources目錄下的文件或獲取資源路徑,需要的朋友可以參考下
    2023-12-12
  • Java 策略模式與模板方法模式相關(guān)總結(jié)

    Java 策略模式與模板方法模式相關(guān)總結(jié)

    這篇文章主要介紹了Java 策略模式與模板方法模式相關(guān)總結(jié),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • Java NIO異步文件通道原理及用法解析

    Java NIO異步文件通道原理及用法解析

    這篇文章主要介紹了Java NIO異步文件通道原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • idea 默認路徑修改從C盤更改到D盤

    idea 默認路徑修改從C盤更改到D盤

    本文主要介紹了idea 默認路徑修改從C盤更改到D盤,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Spring中的聲明式事務(wù)控制詳解

    Spring中的聲明式事務(wù)控制詳解

    這篇文章主要介紹了Spring中的聲明式事務(wù)控制詳解,Spring的聲明式事務(wù)顧名思義就是采用聲明的方式來處理事務(wù),這里所說的聲明,就是指在配置文件中聲明,用在Spring配置文件中聲明式的事務(wù)處理來代替代碼是的處理事務(wù),需要的朋友可以參考下
    2024-01-01
  • Springboot實現(xiàn)VNC的反向代理功能

    Springboot實現(xiàn)VNC的反向代理功能

    這篇文章主要介紹了Springboot實現(xiàn)VNC的反向代理,搭建過程也很簡單,通過注冊bean攔截指定URL路徑進行自定義操作,具體實例代碼跟隨小編一起看看需要的朋友可以參考下
    2021-09-09

最新評論

边坝县| 洪江市| 尼木县| 珠海市| 九寨沟县| 保亭| 津南区| 珲春市| 灵璧县| 黄浦区| 宜兴市| 华阴市| 邛崃市| 吉水县| 买车| 宣恩县| 密山市| 台北市| 乌兰察布市| 元谋县| 甘德县| 茶陵县| 舒兰市| 天津市| 临湘市| 万山特区| 甘谷县| 湾仔区| 阜新| 静安区| 达拉特旗| 平南县| 定远县| 德化县| 福海县| 石楼县| 玛多县| 凤山县| 巴楚县| 龙泉市| 鹿泉市|