Determining When JAVA Thread Is Finished

Jul 27, 2014

I have been new to JAVA programming language and have been using it for generation of a GUI (with NET BEANS).

My problem is, when i start a thread within GUI, that takes some amount of time to get finished (around 5min to 20min cpu time),

I need an a way to detect when the thread is done and accordingly some action to be taken afterwards.

I tried with isAlive, but to no avail.

Example is, I press an JButton, thread starts, when finished Jbutton get colour changed.

View Replies


ADVERTISEMENT

How Boolean Finished Is Set To False And Breaks While Loop

Sep 11, 2014

I'm having trouble understanding how this loop is broken, I can't understand how the boolean finished is set to false and breaks the While loop.

public void run()
{
char answer;
boolean finished = false;
while(!finished)// when false loop is broken

[Code] ....

View Replies View Related

Swing/AWT/SWT :: Controls Not Updating Until Method Is Completely Finished

Dec 30, 2014

I have this method that does several RegEx queries along with a lot of searching and replacing of text, and each regex search / replace takes some time and a total of maybe two minutes for all of them to finish up. So I added a ProgressBar to my JavaFX form and I added code after each step to simply use the ProgressBar.setProgress method by a factor of 10% each step ... so the code would resemble something like this:

do a regex query
if it finds things then do a replaceAll method on the string being searched
ProgressBar.setProgress(.1)

do another RegexQuery
If it finds stuff, so a replaceAll method
ProgressBar.setProgress(.2)

etc...

What is happening is that the progress bar will not actually paint any progress until AFTER the entire method is done executing. So from the users perspective, they click on the button and the program appears to freeze until its all done with that method at which point it instantly changes the progress bar to the last value I set ...

So the desired effect is simply not working, and I don't know why.

I tried changing (as in replacing the progress bar with a different control) the progress bar value settings with updating text in a text box on the form, and even that didn't display any of the text messages until AFTER the procedure was done executing at which point, all of the text logs appeared at one time instead of gradually adding text to the box in increments as the method executed.So it FEELS like any time a method is actually running, the JavaFX scene simply freezes until the method is done running. And it doesn't matter if I change the progress bars value directly or put it into its own method which gets called throughout the execution of the regex method ... either way, nothing actually happens on the form until the software is done executing all of the procedures called and then it comes back to a "resting" state...

I tried simplifying it by making a single method that does two things ... it updates the progress bar and then it waits for 1 second. Then it increments a variable then updates the progress bar, then waits a second, thinking to myself that 1 second pause would give it time to update the progress bars value but even that little method would not work.

Here is the test method I created:

private void testProgressBar() {
for(int x = 0;x<10;x++) {
progressBar.setProgressBar(.1*(x+1));
try {
sleep(1000);
}
catch(InterruptedException e) {
e.printStackTrace();
}
}
}

Even that little piece of code will not actually show any changes in the progress bar until after its done looping at which point, the progress bar is filled to 100%, but I never see the first 9 changes in the progress bar within that for next loop.

View Replies View Related

Swing/AWT/SWT :: What Is Event-dispatching Thread For GUIs And Why Use It Over Main Thread

Sep 20, 2014

I'm currently learning about Swing but I can't get my head round this piece of the code. Here is a simplified gui (not interested in the gui part but the execution)

public class SwingDemo implements ActionListener {
SwingDemo(){
JFrame jfrm = new JFrame("Simple gui pro");
//rest of code
public static void main(String[] args) {
new SwingDemo();
}

I get the above, create a new instance of SwingDemo in the main thread which starts up the gui through the constructor. However, then the tutorial says that I should avoid doing the above but do this instead:

public class SwingDemo implements ActionListener {
SwingDemo(){
JFrame jfrm = new JFrame("Simple gui pro");
//rest of code
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() { //why do this instead?
public void run(){
new SwingDemo();
}
});
}
}

Reading, it talks about an event-dispatching thread which has completely lost me... Why not just instantiate the object directly instead of creating another thread?

View Replies View Related

Passing 2 Sub Arrays Into Sorting Thread Then To A 3rd Thread Merge

Oct 17, 2014

im having an issue with the 3rd thread that are supposed to merge the two sorted sub arrays , i pass the 2 subarrays to my runnable function sortlist and they are renamed IntSortList 1 and 2 and th1.start() and th1.join() are called and it works fine, but then i have another runnable constructor that takes IntSortList 1 and 2 but it does take a runnable. below is the code in my main,

Runnable InSortlist1 = new sortList(data2p1);
Runnable InSortlist1 = new sortList(data2p1);
Thread th1 = new Thread (IntSortlist1);
Thread th2 = new Thread (IntSortlist2);
try
{
th1.start();
th1.join();

[code]....

View Replies View Related

Determining Big O Notation

Apr 12, 2014

Compute the total number of operations for each of the following algorithm and define the value of Big Oh in its worst-case.

i.int jum = 0;
for (int x = 1; x<= n; x++) {
for (int y = 1 ; y <= 10; y++) {
for (int k = 0; k<= n*n; k++) {
jum = jum * x + y;

[Code] .....

What it actually means by compute the total number of operation ? My answer is

(i) 2 assignment , 1 addition and 1 multiplication
(ii) 4 assignment , 1 multiplication , 2 addition

The value of Big O is

(i) 10n^3 , so the answer is n^3
(ii) n^4+1 , so the answer is n^4

May i know is my answer is correct ??

View Replies View Related

Determining Letter Grade Of Students

Apr 14, 2014

The purpose of this project is to determine the letter grade of students. The program needs to accept two command line arguments:

The first being the name of a disk file that contains the names of students, and their test scores, separated by commas followed by one or more spaces. Each line in the file will contain scores for one student.

The second argument is the name of an output disk file. The program is supposed to create a new output disk file using that name.

The number of students in the input file is unknown during compile time. The name of input and output files could be anything and only known during run time. Additionally, the average scores, along with the minimum and maximum scores for each test are to be displayed in the console.

Calculation: Final Score = quiz1 * .10 + quiz2 * .10 + quiz3 * .10 + quiz4 * .10 + midi * .20 + midii * .15 + final * .25
Final Score >= 90% then letter grade is A, 80%-89% B, 70%-79% C, 60-69% D, <= 59% F

input_data.txt:

firstName lastName, 100, 90, 80, 100, 89, 99, 88
firstName lastName, 90, 90, 100, 100, 99, 100, 95
firstName lastName, 100, 90, 100, 70, 78, 78, 80
firstName lastName, 80, 90, 90, 100, 89, 99, 85
etc.

output_data.txt

firstName lastName: B
firstName lastName: A
firstName lastName: F
firstName lastName: B
firstName lastName: C

averages (to appear in console)
Q1 Q2 Q3 Q4 MidI MidII Final
Average: 82.25 80.38 82.85 83.88 81.38 84.13 78.63
Minimum: 60 54 38 62 62 60 50
Maximum: 100 90 100 100 99 100 95

Press ENTER to continue...

Here's what I have so far :

import static java.lang.System.out;
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
public class LetterGrader {

[Code] .....

View Replies View Related

Determining Average Number Of Comparisons For Quicksort?

Feb 24, 2014

My objective is to execute quick sort ( i was told to convert the pseudocode from the Cormen book) using arrays of increasing sizes and find the average number of comparisons for each of those sizes over 100 iterations. This is a school project and the numbers I am getting are far larger than those of my friends, so I am clearly doing something wrong. I believe it must be in the way that I am collecting and averaging my number of comparisons. I will first give the method in which most of that calculating is done, then I will include the whole program.

public static void tests(int arraySize) {
long numComparisons = 0;
long averageComparisons = 0;
long[] numComparisonsArray = new long[100];
  for(int i = 0; i<100; i++) {
int[] array= genRandomArray(arraySize);

[code]....

I was simply not zeroing out one of my variables

View Replies View Related

Determining User Input To Be Prime Number

Feb 12, 2015

Any better way to write a program that takes a user number input and the program determines whether or not the number is prime or not. It was suppose to be a number between 0 and 8,000,000.

import java.util.Scanner;
public class prime1
{
public static void main(String args [])

[Code].....

View Replies View Related

Accessing A Variable Of A Thread From Another Thread

Jul 16, 2014

class A extends Thread
{
String str;

public void run( )
{
//random stuff
}
}

[Code]....

View Replies View Related

How To Interrupt A Thread In Java

Apr 29, 2015

i know how to interrupt a thread in java but somehow it is not working.

My Application looks like this

public class MyThread {
public static void main(String[] args) {
Thread testThread = new Thread(new GreatThread());
testThread.start();

[Code]....

I always read that interrupting a Thread is so much better than the .stop method but somehow the interrupt method don't work?

View Replies View Related

Thread Java - Illegal State Monitor Exception

May 30, 2014

Class A{
Public static synchronized void main(String args[]){
Thread t= new thread();
t.start();
Sysout("hi");
t.wait(1000);
Sysout("hello");
}}

Illegal state monitor exception. Why?

View Replies View Related

How To Access One Thread From Another Thread

Oct 8, 2014

How to access one thread from another thread?

View Replies View Related

EJB / EE :: Convert Standalone Java Thread Application Into Web Application In Tomcat

Nov 17, 2014

convert or move standalone java thread application into Tomcat server container for accessing its JNDI services? Also is it possible to schedule this thread application in Tomcat server? is it possible to keep this app in tomcat as web application and schedule in window's scheduler.

View Replies View Related

How To Delete A Thread

Nov 19, 2014

Doesn't matter now, I solved it but I don't know how to delete a thread...

View Replies View Related

Add KeyListener To Thread

Feb 13, 2014

I want to try and run a thread that starts running on start and quits after pressing a key.I cant seem to detect keypresses. ci cant seem to add code: Post denied. New posts are limited by number of URLs it may contain and checked if it doesn't contain forbidden words.

its just a code snippit without links or anything..this is a small part... but how do i add a keyListener in here that listends to a random key?The class implements KeyListener and the overrided method "keyPressed" sets the isRunning boolean to false... but the keyPressed method is never executed.

public static void main(String[] args) {
Thread thread = new Thread() {
public void run() {
while(isRunning){
System.out.println("running");
try {
sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
thread.start();
}

View Replies View Related

How To Start New Thread

Apr 27, 2014

how to start a new thread

public class pracDraw extends JFrame {
private Color red=Color.red;
public int i;
private Color white = Color.white;
JPanel pr=new JPanel();
JTextField t=new JTextField();

[code]....

If u run it you can see that the JTextField (t1) is drawn on the panel along the line but it does so with a gray border. How do i eliminate that grey border and only draw the text field along the line and finally make the text field green after it reaches the end of line?

View Replies View Related

Paint In Thread Or Runnable

Jun 25, 2014

import java.awt.Graphics;
import javax.swing.JFrame;
class node{
node(int a,node next){
this.a=a;this.next=next;

[Code] ....

The code was ran not right, I want it's result is: 1 2 3 4 5 and delay(1000) every time that it prints a number

Example: 1 (delay(1000)) 2 (delay(1000)) ....

And the paint must do that

View Replies View Related

Looping Thread Out Of Sync

Dec 12, 2014

I have a program ive been working on and it works, but the flags in the runnables seem to shift the output down 1. for instance i commented playa3. start(); to see whats going on, if i just run playa1 i got no issues, as soon as i enable playa2, i get this output:

Game continues...
Dealer places King and Queen on the table.

Game continues...
Dealer places Queen and Ace on the table.
Player one with 'Ace' places his card on the table.
Player one with 'Ace' wins the current deal.
King Queen

Game continues...
Dealer places Queen and King on the table.
Player two with 'King' places his card on the table.
Player two with 'King' wins the current deal.
Queen Ace

the second time the dealer deals, player one places his cards on the table when he was supposed to do that for the first deal which he didnt. the last line there, (king queen) is just a print statement that is referring to the dealers hand that, that iteration is responding too. below is my code, i

import java.util.*;
import java.io.*;
import java.lang.*;

public class P5
{
public static int i, count, dealerFirstCard, dealerSecondCard, player1, player2, player3;
public static String cardSet [] = {"Ace","King", "Queen"};
public static volatile boolean dealerFinished= false;
public static volatile boolean playersFinished= false;

[code]....

View Replies View Related

Method Not Called Within Thread?

Oct 23, 2014

have written a new class that contains a thread.

From within that thread I try to call a method from within the same class the contain the thread. This method is not being called. I have confirmed that that section of code is being executed in the thread.

If you look at the following code, the thread being run is called MainThread ln 114, and the method it calls that is not being executed is called onprogressTime() ln 105;

package com.example.scott.coloursquares;
import android.content.Context;
import android.graphics.BitmapFactory;

[Code]....

View Replies View Related

Accessing Keylistener From Thread

Mar 23, 2014

I start my thread, it's for a real basic game I'm learning. Everything was working fine, until I got to recognizing keys. It runs, and I can close using the mouse on the close command, but the keys aren't being generated from the keyboard. I copied it to a working sample, and here are the two files.

package testkeys;
import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import javax.swing.JFrame;

[Code] ....

The idea was to set the return value to true if any key is pressed, thus quitting, for this short sample program. Problem, it never recognizes any keys pressed on the keyboard. New to java and threading.

View Replies View Related

Exception In Thread Main

Jan 11, 2014

I am new to java and still learning. I am trying to execute the code below which compiles successfully, but getting the following error:"Exception in thread "main" java.lang.NoSuchMethodError: main"

Code:

class Dog{
int size;
String name;
String breed;
void bark(){
System.out.println("woof woof");
}
}
class DogTestDrive{

[code]....

View Replies View Related

Thread And Clock Management

Dec 19, 2014

I have objects (baddies in a game) that have individual clocks/counters assigned to them (when I make an object, I fill an integer based array list with a new digit entry at a value of one) that all happens in threads. then in another thread, I am checking the whole list of clocks, to see if any are equal to a wanted value , then I am taking an action and reseting the clock at that point on the array list.

now, the problem is:even though my code says " yes, I've taken that action because the value of array position x was >= specified value and I will now reset the clock" it doesn't reset the clock. Here is what it looks like

*these are excerpts taken from a really big program, however they should stand on their own as they are individual classes

Java Code:

public class levelclock extends Thread {
public void run() {
while (Run2 == true) {
if (Run == false) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();

[code]....

(Attached, just open up the zip and read the .txt)

View Replies View Related

Read And Process File Using Thread?

Nov 4, 2014

I created a main class called X and two Y and Z classes.

Y and Z implements Runnable classes.

class X contains a static array A that can be accessed in Y and Z.

The Run () method of the class Y reads an input file and populates the vector A.

The Run () method of the Z class uses data stored into the vector A to process some data.

The objective of using threads in this problem is: as the vector A is filled in the Run () method of class Y, the Run () method of the class Z will processing the received values ​​in the vector A.

to do this I did the following calls in the main method of class X:

ObjectY y = new Y ();
Thready thread = new Thread (objectY);
threadY.start ();
ObjectZ new Z = Z ();
Threadz thread = new Thread (objectZ);
threadZ.start ();

is that correct? I'm getting the expected results, but dont know if the code is parallelized in fact.

View Replies View Related

Threads - Object Visible To More Than One Thread

Mar 24, 2014

I need a small example of an object which is visible to two different threads.

Does saying "an object is visible to two threads" mean that it's fields or methods are being used in both the threads? I am not clear about that.

View Replies View Related

Implementing A Thread-safe Queue

Jul 10, 2014

I have situation where a user can request java server to send a value to an embedded device, and if the device is asleep, that value needs to be stored in a queue until the device wakes up and sends a position to java server, at which point the server checks if there is a value in the queue and if there is, it then sends that value to the device. The maximum size of the queue is 1 for now. And if the user makes continuous requests to java server, the old value is removed and the new value is added.

Initially I was looking into BlockingQueue, but the problem with that is, well, it blocks. queue.put(value) will block if queue is full, and queue.take() will block if queue is empty. I can't have something that blocks. When the device responds to server, server checks if value is in queue, if it is not then the server carries on the rest of its responsibility. Thus, I then entertained ConcurrentLinkedQueue. While queue.offer(value) and queue.poll(); allow you to add and remove values respectively from the queue without blocking, it does not allow you to set a maximum size limit of the queue. My queue must have a maximum size limit and it has to always be the newest value the user submits to the queue (where old values are removed).So this is what I came up with:

Java Code: class Unit {
private List<Integer> cmdQueue;

public Unit(){
cmdQueue = Collections.synchronizedList(new LinkedList<Integer>());

[code]....

I use Collections.synchronizedList, as I do here, do I still need to use synchronize as I did above?

View Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved