0% found this document useful (0 votes)
101 views9 pages

Laboratorio Avanzado de Java

This document outlines exercises for an Advanced Java Programming lab covering threads and multithreading. The first exercise discusses approaches for creating threads including implementing Runnable and extending Thread. The second exercise covers thread methods like join(), yield(), and daemon threads. The third exercise involves creating a simple notepad application using multithreading. The fourth exercise involves a file copying GUI with a progress bar. The fifth exercise involves splitting a large file into smaller pieces for backup.

Uploaded by

afalonso
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views9 pages

Laboratorio Avanzado de Java

This document outlines exercises for an Advanced Java Programming lab covering threads and multithreading. The first exercise discusses approaches for creating threads including implementing Runnable and extending Thread. The second exercise covers thread methods like join(), yield(), and daemon threads. The third exercise involves creating a simple notepad application using multithreading. The fourth exercise involves a file copying GUI with a progress bar. The fifth exercise involves splitting a large file into smaller pieces for backup.

Uploaded by

afalonso
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Advanced Java Programing Lab FIT IUH

Lab Thread
Exercise 1
Creating a thread
1. The first approach for creating threads is implement Runnable interface (recommended)

Run and make a review for the result


2. The second approach for creating a thread by extending the Thread class (not
recommended)

Department of Software Engineering 1


Advanced Java Programing Lab FIT IUH

Run and make a review for the result. Explain why this way was not a recommendation.
3. The third approach is implemented Callable interface

Department of Software Engineering 2


Advanced Java Programing Lab FIT IUH

Run and make a review for the result.

Exercise 2
Manipulate methods of thread
1. Using join() method
Waits for this thread to die.

Department of Software Engineering 3


Advanced Java Programing Lab FIT IUH

Run and make a review for the result.


2. Using yield() method
The java.lang.Thread.yield() method causes the currently executing thread object to
temporarily pause and allow other threads to execute.

Department of Software Engineering 4


Advanced Java Programing Lab FIT IUH

Run program and make a review.


3. Using daemon thread

Run the program and observe.


Comment line 24 and run again. Make an explanation about this case.
4. *** Using the ‘wait - notify’ mechanism
Create three classes: Storage, Counter and Printer.
Department of Software Engineering 5
Advanced Java Programing Lab FIT IUH

The Storage class should store an integer.


The Counter class should create a thread that starts counting from 0 (0, 1, 2. 3 ...) and stores
each value in the Storage class.
The Printer class should create thread that keeps reading the value in the Storage class and
printing it.
Create a program that creates an instance of the Storage class, and sets up a Counter and a
Printer object to operate on it.
(*) Modify the program to ensure that each number was printed exactly once, by adding
suitable synchronization.
a. Wrong solution

Run, observe and explain why it was a incorrect version.


b. Correct solution

Department of Software Engineering 6


Advanced Java Programing Lab FIT IUH

Run and explain the result.

Exercise 3
Write an application simulates simple notepad (use multithreading loading file) Main GUI as
follow

Department of Software Engineering 7


Advanced Java Programing Lab FIT IUH

Exercise 4
Write a GUI application that copies files. A progress bar is used to display the progress of the
copying operation, as shown in following figure.

Exercise 5
Suppose you wish to back up a huge file (e.g., a 10-GB AVI file) to a CD-R. You can achieve it
by splitting the file into smaller pieces and backing up these pieces separately. Write a utility
program that splits a large file into smaller ones. (Display the percentage of work done in a progress
bar, as shown in following figure)

Department of Software Engineering 8


Advanced Java Programing Lab FIT IUH

Read more
1. https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
2. https://docs.oracle.com/javase/tutorial/essential/concurrency/
3.

Department of Software Engineering 9

You might also like