提交 73e84c8f 编写于 作者: 御承扬

Update

上级 5a01809c
......@@ -60,9 +60,6 @@
<inspection_tool class="ClassOnlyUsedInOnePackage" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ClassUnconnectedToPackage" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ClassWithoutConstructor" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ClassWithoutNoArgConstructor" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_ignoreClassesWithNoConstructors" value="true" />
</inspection_tool>
<inspection_tool class="CloneableClassInSecureContext" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ComparableImplementedButEqualsNotOverridden" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="CompareToUsesNonFinalVariable" enabled="true" level="WARNING" enabled_by_default="true" />
......@@ -108,6 +105,7 @@
</inspection_tool>
<inspection_tool class="InconsistentLanguageLevel" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="IncrementDecrementUsedAsExpression" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="InfiniteLoopStatement" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="InnerClassReferencedViaSubclass" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="InstanceGuardedByStatic" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="InstanceofIncompatibleInterface" enabled="true" level="WARNING" enabled_by_default="true" />
......@@ -156,7 +154,6 @@
<inspection_tool class="NonFinalFieldInImmutable" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonFinalGuard" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonShortCircuitBoolean" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonStaticInnerClassInSecureContext" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="OverlyLargePrimitiveArrayInitializer" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_limit" value="64" />
</inspection_tool>
......@@ -181,7 +178,15 @@
<option name="ignoreLazyOperators" value="true" />
<option name="ignoreObscureOperators" value="false" />
</inspection_tool>
<inspection_tool class="ResultOfObjectAllocationIgnored" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ResultOfObjectAllocationIgnored" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredClasses">
<set>
<option value="多线程.InterruptedSwing" />
<option value="多线程.JoinTest" />
<option value="多线程.SwingAndThread" />
</set>
</option>
</inspection_tool>
<inspection_tool class="ResultSetIndexZero" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ReturnNull" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_reportObjectMethods" value="true" />
......@@ -220,7 +225,6 @@
<option name="m_limit" value="3" />
</inspection_tool>
<inspection_tool class="UnknownGuard" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UnsecureRandomNumberGeneration" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UseOfAWTPeerClass" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UseOfJDBCDriverClass" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UseOfProcessBuilder" enabled="true" level="WARNING" enabled_by_default="true" />
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownProjectSettings" wasCopied="false">
<PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false">
<PanelProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
</PanelProvider>
</PreviewSettings>
<ParserSettings gitHubSyntaxChange="false" emojiShortcuts="1" emojiImages="0">
<PegdownExtensions>
<option name="ABBREVIATIONS" value="false" />
<option name="ANCHORLINKS" value="true" />
<option name="ASIDE" value="false" />
<option name="ATXHEADERSPACE" value="true" />
<option name="AUTOLINKS" value="false" />
<option name="DEFINITIONS" value="false" />
<option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" />
<option name="FENCED_CODE_BLOCKS" value="true" />
<option name="FOOTNOTES" value="false" />
<option name="HARDWRAPS" value="false" />
<option name="HTML_DEEP_PARSER" value="false" />
<option name="INSERTED" value="false" />
<option name="QUOTES" value="false" />
<option name="RELAXEDHRULES" value="true" />
<option name="SMARTS" value="false" />
<option name="STRIKETHROUGH" value="true" />
<option name="SUBSCRIPT" value="false" />
<option name="SUPERSCRIPT" value="false" />
<option name="SUPPRESS_HTML_BLOCKS" value="false" />
<option name="SUPPRESS_INLINE_HTML" value="false" />
<option name="TABLES" value="true" />
<option name="TASKLISTITEMS" value="true" />
<option name="TOC" value="false" />
<option name="WIKILINKS" value="false" />
</PegdownExtensions>
<ParserOptions>
<option name="ADMONITION_EXT" value="false" />
<option name="ATTRIBUTES_EXT" value="false" />
<option name="COMMONMARK_LISTS" value="true" />
<option name="DUMMY" value="false" />
<option name="EMOJI_SHORTCUTS" value="true" />
<option name="ENUMERATED_REFERENCES_EXT" value="false" />
<option name="FLEXMARK_FRONT_MATTER" value="false" />
<option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />
<option name="GFM_TABLE_RENDERING" value="true" />
<option name="GITBOOK_URL_ENCODING" value="false" />
<option name="GITHUB_LISTS" value="false" />
<option name="GITHUB_WIKI_LINKS" value="false" />
<option name="GITLAB_EXT" value="false" />
<option name="GITLAB_MATH_EXT" value="false" />
<option name="GITLAB_MERMAID_EXT" value="false" />
<option name="HEADER_ID_NON_ASCII_TO_LOWERCASE" value="false" />
<option name="HEADER_ID_NO_DUPED_DASHES" value="false" />
<option name="JEKYLL_FRONT_MATTER" value="false" />
<option name="MACROS_EXT" value="false" />
<option name="NO_TEXT_ATTRIBUTES" value="false" />
<option name="PARSE_HTML_ANCHOR_ID" value="false" />
<option name="PLANTUML_FENCED_CODE" value="false" />
<option name="PUML_FENCED_CODE" value="false" />
<option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
</ParserOptions>
</ParserSettings>
<HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false" addDocTypeHtml="true" noParaTags="false" plantUmlConversion="0" mathConversion="0">
<GeneratorProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />
</GeneratorProvider>
<headerTop />
<headerBottom />
<bodyTop />
<bodyBottom />
</HtmlSettings>
<CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true">
<StylesheetProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />
</StylesheetProvider>
<ScriptProviders />
<cssText />
<cssUriHistory />
</CssSettings>
<AnnotatorSettings targetHasSpaces="true" linkCaseMismatch="true" wikiCaseMismatch="true" wikiLinkHasDashes="true" notUnderWikiHome="true" targetNotWikiPageExt="true" notUnderSourceWikiHome="true" targetNameHasAnchor="true" targetPathHasAnchor="true" wikiLinkHasSlash="true" wikiLinkHasSubdir="true" wikiLinkHasOnlyAnchor="true" linkTargetsWikiHasExt="true" linkTargetsWikiHasBadExt="true" notUnderSameRepo="true" targetNotUnderVcs="false" linkNeedsExt="true" linkHasBadExt="true" linkTargetNeedsExt="true" linkTargetHasBadExt="true" wikiLinkNotInWiki="true" imageTargetNotInRaw="true" repoRelativeAcrossVcsRoots="true" multipleWikiTargetsMatch="true" unresolvedLinkReference="true" linkIsIgnored="true" anchorIsIgnored="true" anchorIsUnresolved="true" anchorLineReferenceIsUnresolved="true" anchorLineReferenceFormat="true" anchorHasDuplicates="true" abbreviationDuplicates="true" abbreviationNotUsed="true" attributeIdDuplicateDefinition="true" attributeIdNotUsed="true" footnoteDuplicateDefinition="true" footnoteUnresolved="true" footnoteDuplicates="true" footnoteNotUsed="true" macroDuplicateDefinition="true" macroUnresolved="true" macroDuplicates="true" macroNotUsed="true" referenceDuplicateDefinition="true" referenceUnresolved="true" referenceDuplicates="true" referenceNotUsed="true" referenceUnresolvedNumericId="true" enumRefDuplicateDefinition="true" enumRefUnresolved="true" enumRefDuplicates="true" enumRefNotUsed="true" enumRefLinkUnresolved="true" enumRefLinkDuplicates="true" simTocUpdateNeeded="true" simTocTitleSpaceNeeded="true" />
<HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="css" scriptDir="js" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetPathType="2" targetExt="" useTargetExt="false" noCssNoScripts="false" useElementStyleAttribute="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
<LinkMapSettings>
<textMaps />
</LinkMapSettings>
</component>
</project>
\ No newline at end of file
<component name="MarkdownNavigator.ProfileManager">
<settings default="" pdf-export="" plain-text-search-scope="Project Files" />
</component>
\ No newline at end of file
此差异已折叠。
package 多线程;
// !/usr/bin/env jdk1.8
// encoding:utf-8
//@software:IntelliJ IDEA
//@pack:多线程
//@user:彭友聪
//@date:2019/07/17
//@time:下午 4:30
//@project:IDEA_JAVA
//@file:InterruptedSwing.java
//Author:御承扬
//email:2923616405@qq.com
import javax.swing.*;
import java.awt.*;
public class InterruptedSwing extends JFrame {
private InterruptedSwing(){
setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE );
setSize(100,100);
setVisible( true );
final JProgressBar progressBar = new JProgressBar( ); // 创建进度条
// 将进度条放置到合适的位置
getContentPane().add(progressBar, BorderLayout.NORTH );
progressBar.setStringPainted( true ); // 设置进度条上显示数字
// 执行线程停止方法
Thread thread = new Thread() {
int count = 0;
public void run() {
while (true) {
++count;
progressBar.setValue( count );
try {
if (count == 30) {
interrupt(); // 执行线程停止方法
}
Thread.sleep( 100 );
} catch (InterruptedException e) {
System.out.println( "当前线程被中断" );
break;
}
}
}
};
thread.start();
}
public static void main(String[] args) {
new InterruptedSwing();
}
}
package 多线程;
// !/usr/bin/env jdk1.8
// encoding:utf-8
//@software:IntelliJ IDEA
//@pack:多线程
//@user:彭友聪
//@date:2019/07/17
//@time:下午 7:56
//@project:IDEA_JAVA
//@file:Priority.java
//Author:御承扬
//email:2923616405@qq.com
public class Priority extends Thread {
private String threadName; // 线程的名字
private String output;
// 以线程名、控制台输出的信息为参数的构造方法,利用构造方法初始化变量
Priority(String threadName, String output) {
this.threadName = threadName;
this.output = output;
}
@Override
public void run() { // 线程要执行的任务
System.out.print( threadName + ":" + output + " " );
}
}
package 多线程;
public class PriorityTest {
public PriorityTest() {
}
public static void main(String[] args) {
for(int i=0;i<100;i++) { // 通过循环控制线程的启动次数
Priority test1 = new Priority( "加","+" );
test1.setPriority( Thread.MIN_PRIORITY ); // 设置优先级最低
Priority test2 = new Priority( "减","-" );
test2.setPriority( 3 );
Priority test3 = new Priority( "乘","×" );
test3.setPriority( 8 );
Priority test4 = new Priority( "除","÷" );
test4.setPriority( Thread.MAX_PRIORITY ); // 设置优先级最高
// 启动线程
test1.start();
test2.start();
test3.start();
test4.start();
System.out.println( ); // 换行
}
}
}
......@@ -412,7 +412,50 @@
public static void main(String[] args) {
new InterruptedSwing();
}
}
}
```
## 5、线程的优先级
* 每个线程都有自己的优先级,线程的优先级可以表明在程序中该线程的重要性;当有很多线程处于就绪状态时,系统会根据线程的优先级决定线程的运行次序。
* Thread 类中定义了一些常量用来表示线程的优先级,Thread.MIN_PRIORITY~Thread.MAX_PRIORITY (常数1~常数10),默认情况下,现成的优先级都是 Thread.NORM_PRIORITY。每个线程的产生都继承了父线程的优先级。
* **多线程的执行本身就是多个线程交换执行,并非同时执行,通过设置线程的优先级的高低,只是说明该线程或被执行或暂不执行的概率更大一些,并不能保证优先级高的线程就一定会比优先级低的线程先执行。**
* 实例:
```
public class Priority extends Thread {
private String threadName; // 线程的名字
private String output;
// 以线程名、控制台输出的信息为参数的构造方法,利用构造方法初始化变量
Priority(String threadName, String output) {
this.threadName = threadName;
this.output = output;
}
@Override
public void run() { // 线程要执行的任务
System.out.print( threadName + ":" + output + " " );
}
}
public class PriorityTest {
public PriorityTest() {
}
\ No newline at end of file
public static void main(String[] args) {
for(int i=0;i<100;i++) { // 通过循环控制线程的启动次数
Priority test1 = new Priority( "加","+" );
test1.setPriority( Thread.MIN_PRIORITY ); // 设置优先级最低
Priority test2 = new Priority( "减","-" );
test2.setPriority( 3 );
Priority test3 = new Priority( "乘","×" );
test3.setPriority( 8 );
Priority test4 = new Priority( "除","÷" );
test4.setPriority( Thread.MAX_PRIORITY ); // 设置优先级最高
// 启动线程
test1.start();
test2.start();
test3.start();
test4.start();
System.out.println( ); // 换行
}
}
}
```
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册