| Line 3: |
Line 3: |
| | ===With apt=== | | ===With apt=== |
| | <nowiki>sudo apt-add-repository ppa:webupd8team/java | | <nowiki>sudo apt-add-repository ppa:webupd8team/java |
| − | sudo apt-get update
| + | sudo apt-get update |
| − | sudo apt-get install oracle-java8-installer</nowiki>
| + | sudo apt-get install oracle-java8-installer</nowiki> |
| | | | |
| | Also ensure your JAVA_HOME variable has been set to: | | Also ensure your JAVA_HOME variable has been set to: |
| Line 1,020: |
Line 1,020: |
| | Static fields aren't serialized too. | | Static fields aren't serialized too. |
| | | | |
| − | == Threading == | + | ==Threading== |
| | <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> |
| | class Task1 extends Thread { | | class Task1 extends Thread { |
| Line 1,063: |
Line 1,063: |
| | </syntaxhighlight> | | </syntaxhighlight> |
| | | | |
| − | === Executor service === | + | ===Executor service=== |
| | <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> |
| | import java.util.concurrent.ExecutorService; | | import java.util.concurrent.ExecutorService; |
| Line 1,092: |
Line 1,092: |
| | executorService.execute(new Task(4)); | | executorService.execute(new Task(4)); |
| | executorService.shutdown() | | executorService.shutdown() |
| | + | } |
| | + | } |
| | + | </syntaxhighlight> |
| | + | |
| | + | === Return values from threads === |
| | + | <syntaxhighlight lang="java"> |
| | + | import java.util.concurrent.Callable; |
| | + | |
| | + | class CallableTask implements Callable<String> { |
| | + | |
| | + | public CallableTask(String name){ |
| | + | this.name = name; |
| | + | } |
| | + | |
| | + | @Override |
| | + | public String call() throws Exception { |
| | + | Thread.sleep(1000); |
| | + | return "Hello " + name; |
| | + | } |
| | + | } |
| | + | |
| | + | public class CallableRunner throws InterruptedException, Exec... { |
| | + | public static void main(String[] args){ |
| | + | ExecutorService executorService = Executors.newFixedThreadPoool(1); |
| | + | Future<String> welcomeFuture = executorService.submit(new CallableTask("Manolo")); |
| | + | System.out.print("\ncallable executed") |
| | + | String welcomeMessage = welcomeFuture.get(); |
| | + | System.out.print("\nMain completed") |
| | } | | } |
| | } | | } |