Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
deepcloudlabs committed Jul 22, 2022
1 parent a749dad commit d33ad01
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 0 deletions.
10 changes: 10 additions & 0 deletions study-thread-programming/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
17 changes: 17 additions & 0 deletions study-thread-programming/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>study-thread-programming</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
14 changes: 14 additions & 0 deletions study-thread-programming/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
40 changes: 40 additions & 0 deletions study-thread-programming/src/com/example/Exercise01.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.example;

import java.util.List;
import java.util.concurrent.ThreadLocalRandom;

// Thread: i) Multi-tasking
// ii) Multi-core -> Parallel Programming
public class Exercise01 {

public static void main(String[] args) throws InterruptedException {
System.out.println("Application is just started.");
var task1 = new LotteryTask();
var task2 = new LotteryTask();
var t1 = new Thread(task1); // Platform (OS) manages -> Kernel-level Thread
var t2 = new Thread(task2);
t1.start();
t2.start();
t1.join();
System.out.println(task1.getNumbers());
t2.join();
System.out.println(task2.getNumbers());
System.out.println("Application is done.");
}

}

class LotteryTask implements Runnable {

private List<Integer> numbers;

@Override
public void run() {
numbers = ThreadLocalRandom.current().ints(1, 60).distinct().limit(6).sorted().boxed().toList();
}

public List<Integer> getNumbers() {
return numbers;
}

}

0 comments on commit d33ad01

Please sign in to comment.