Print Out Statement After Executing To ThreadPoolExecutor?
Jul 26, 2014
I'm trying to make a statement of elapsed time print out after I've executed everything with a ThreadPoolExecutor. What happens is that instead of printing out after all the iterations within the for each loop are done, it prints out the elapsed statement in the middle of the iterations or even in the beginning of the whole execute() method. Here is my code:
package com.atem;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public final class Example {
I have a library that uses a ThreadPoolExecutor, backed by a bounded queue.
We submit a large number of tasks to this executor, constantly polling an external dependency for new work. However, this executor has a fixed size. When a ThreadPoolExecutor is busy, it queues up to the blocking queue's capacity tasks in its blocking queue, at which point it starts rejecting tasks.
What I'd rather do, instead of requesting more work, and then throwing it out, is to detect that we're totally busy and stop requesting work until a thread frees up.
Now, I know that one approach is to rewrite the workers such that they are infinite loops, who poll for work when they're finished. Due to the large number of consumers of this library, this is not an option.
I have come up with two other solutions.
1) This is one that I know will work, which is to use a semaphore or other concurrent counter to track how many tasks I have submitted, and stop requesting more work when that semaphore is out of permits. The processors release a permit when they complete (whether due to exception or success).
2) The other option, since I know this is a ThreadPoolExecutor, is way simpler, but also is something I'm not sure is reliable.
I can compare executor.getActiveThreads() + executor.getQueue.size() to the maximum number we can handle before rejecting (maxThreads + queueSize). This change is far simpler, but I'm not sure if those calls are a reliable way of counting the current work.
Implement a Las Vegas slot machine! The machine works as follows. First, it generates three random integers (use import java.lang.Math.*; then call Math.random()*7 to generate a random number between [a,b)) that are in the range of 0-7. Once the numbers are generated, the following rules are used to determine the prize:
- If all three numbers are equal to 7, you are winning $1,000, - If all three numbers are equal, but not equal to 7, you are winning $500, - If two of the numbers are equal to 7 and the third one is six, you are winning $400, - If two numbers are equal, you are winning $100, - Otherwise you are not winning anything.
And for that I wrote:
import java.lang.Math;
public class Assn1_2150130 { public static void main(String[] args) { // Generate three random signle-digit integar from 0-7. int n1 = (int)(Math.random()*7); int n2 = (int)(Math.random()*7); int n3 = (int)(Math.random()*7);
[code]...
But I just can't figure out a way to print out the "YOU WON NOTHING." independently.If I say that n1!=n2 && n2!=n3 && n3!=n1, and then write another line of println. It gives out the number as well as the "NOTHING".
This code is supposed to convert a decimal base number to base 2, 8 or 16. It prints the number but it's supposed to be in the reverse order for example when converting 188 to base 16. it prints CB instead of BC.
package test; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Enter a positive integer."); int number = input.nextInt();
I read on how to use the continue statement, but I'm failing in how to use it properly, mostly because it's not working. I'm supposed to print out what numbers are showing up and how many times for each. Plus, I have to print out 'times' instead of 'time' if there's more than one of a certain number. Right now, it's printing out all the numbers including the ones that don't get inputted.
import java.util.Scanner; public class occurrence { public static void main(String[] args) {
//scanner/values Scanner input = new Scanner(System.in); int number = 101;
I have wrote the necessary program for the class which was : Modify the customer class to include changeStreet(), changeState(), and changeZip methods. Modify the account class to include a changeAddress() method that has street city and zip parameters. Modify the Bank application to test the changeAddress method.
The problem arose when I went to test it. For some reason when it asks "Would you like to modify your account information? (y/n)" it will not allow the user to input anything and thus test the class. Here is my code
Class Customer import java.util.*; import java.io.*; public class Customer { private String firstName, lastName, street, city,state, zip;
Alright so I wrote a switch statement that decides what range to print based on the letter grade input.
import java.util.Scanner; public class SwitchPractice { public static void main(String [] args) { Scanner scan = new Scanner(System.in);
[code]...
It works fine, but once it the user enters a letter grade and then displays the value, it does not prompt the user for another letter grade so that it can perform the output again. Also if I wanted to display an error message to the user if they enter an invalid letter grade how would I do that. I tried using a while loop and if statement in the switch statement but that didn't work.
I am working my way through "Head First Java" and typing the code in the book into Notepad++ as I go. In the first few chapters the code was simple and only had one class (main). Now the code has two or more classes. Originally I would compile the code in the Command Window by typing "javac" and the program's name. After it compiled I would execute the program by typing "java -classpath . " and the program's name. However, now when program has several classes I get the following error: Could not find or load main class. Below is a program I am having issues with... does it need to be saved as two separate files?
class DogTestDrive { public static void main (String [] args) { Dog one = new Dog(); one.size = 70; Dog two = new Dog(); two.size = 8;
I am not necessarily 'new' to java, however I have always used NetBeans so I am not entirely sure how to do what I need with the terminal commands. I am trying to execute a java jar file(which works perfectly on windows) on the Raspberri Pi, essentially debian linux.
As I mentioned previously, I have a java jar file which I can execute on windows, but it depends on three other libraries, namely RXTX, MySQL, and JSON. I am not positive how to compile this into a jar, or execute it in debian.
This was how I attempted to load two of those libraries, however the last line is the error I received.
Error: Could not find or load main class Automation_System.core.HAS
Specifically, the problem seems to be that I cannot use the -cp flag to indicate classpaths, and the -jar flag indicating I am executing a jar in the same command. I am not sure how to point the compiler to my main class HAS in the core package of the jar, and also to the libraries referenced.
I've just installed the last Java kit JDK plus netbeans and I've done my first project in Java. It is running perfect from command line<but is is difficult to execute each time from there my tests> but I couldn't run the jar file from windows with double click he jar file even I've spent 3 hour on google to find different methods (registry modifying, control panel/program running in windows, a patch file etc, ) ....
I have been writing some loops for some days now. I'm just unable to predict the output for the following different piece of code even though I wrote 'em
public class Numbers { public static void main(String[] args) { int numbers[] = {1, 2, 3, 20, 80, 200}; for(int i = 0; i < numbers.length; i++) { System.out.println(numbers[i++] = 5); } } }
I need to execute a perl file from a resource folder, So that i can able to run the perl file after changing the project to a jar file. And also i need to pass an argument also.
I am validating an xml file using XQuery in Java using XQJ API. When the query is triggered it is giving the ClassNotFoundException for orai18n.text.OraCollator. I have placed the orai18n-collation.jar file in MANIFEST.MF file and it is loaded in to the class path.
Not sure on why it is giving the exception.
The JDK i am using JDK1.7 and application server is weblogic.
When a thread completes its execution, it will be destroyed.In Java thread pool implemenation, how does threads come back to ready state after executing the task.?
Picked up _JAVA_OPTIONS: -Xmx10g -XX:MaxPermSize=10g
can get the values for 1.0
java.net.UnknownHostException: home at java.net.PlainSocketImpl.connect(PlainSocketImpl.j ava:195) at java.net.SocksSocketImpl.connect(SocksSocketImpl.j ava:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478)
So from what iv learnt in Java and programming in general is that using a case statement is far more efficient that using multiple IF statements. I have an multiple IF statements contained within a method of my program, and would like to instead use a case statement.
So I want to make a simple Java that ask the user to pick a powers and it has two options.If the user picks magic then execute the first if statement then ask the user again which type of magic the user wants.I can't make it work it keeps printing the else statement. Why is that?
import java.util.Scanner; public class Variable { static Scanner zcan = new Scanner(System.in); public static void main(String[] args)
Basically the class is supposed to have a static variable that keeps track of the number of companies (numberOfCompanies) that have been created and a static method that returns the value of this variable. I need to have a constructor and a method to addEmployee, a method to printCompany, and a toString method. The addEmployee method will check that there is only 1 salesperson, 2 designers, and 4 manufacturing persons at a time and will check that there are no more than 7 employees of the company.
The addEmployee method will return a String indicating what the error is (i.e. "There is already a sales person in this company") or a null if the employee was added. If attempting to name a third company, an error message will be shown. what i have so far but my print company mmethod returns null company class :in which i am obliged to use inputdialog because it says that it cannot return void when i use the showmeassage diaolog.
company class:
import java.util.ArrayList; import javax.swing.JOptionPane; public class Company { private ArrayList<Employees> list ; private static int numberOfCompanies;
[Code] ....
error message when print button is clicked:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent at javax.swing.JOptionPane.createInternalFrame(Unknown Source) at javax.swing.JOptionPane.showInternalOptionDialog(Unknown Source) at javax.swing.JOptionPane.showInternalMessageDialog(Unknown Source)
I'm trying to run an if statement with an input condition and here is my code.
import java.util.Scanner; public class App10A { public static void main(String[] args) { Scanner fun = new Scanner(System.in); System.out.println("What's your name?"); String name = fun.nextLine();
[code]....
When the computer asked me "What's your name?", I typed in Victor, then the result turned out to be "Oops, try again!".I typed in Victor (without parenthesis) and "Victor" and both gave me the negative results.What exactly should I put in in order to get "This is the result I wanted!" ? how should I modify my code in order to get "This is the result I wanted!" when I put in Victor (without changing the equal sign)?
How do I use a variable in an if statement to return a public void method from another class? I've tried:
System.out.print("select 1 - 6: "); Scanner myScanner = new Scanner(System.in); myScanner.nextInt(); if (myScanner.nextInt()==1) { carSelection colour = new carSelection(); colour.carSelection();
The method colour in class car selection is just 4 print line statements? I've // out the if statement to see if it is correctly calling the method and displaying the data and it is?
I'm having a problem where an if statement isn't working. In the Person class boolean olderThan ignores my if statement so it always returns false and I just don't get why that's happening.
import java.util.Calendar; public class Person { private String name; private MyDate birthday; public Person(String name, int pp, int kk, int vv) { this.name = name;
In the program below I populated three arrays: student id, name, and GPA. The findStudent() method attempts to match users input with the input stored in the studentID array using an if/ else statement. When I use the if/ else statement the else always executes regardless if the IDs match? I am trying to get JOptionPane.showMessageDialog(null, "Incorrect entry"); to print only if the IDs don't match.
Java Code:
//FILE: StudentIDArray.java import javax.swing.*; //Used for the JOption dialog boxes import java.util.*; //Used for Scanner input public class StudentIDArray { boolean nameFound = true; final int numOfElements = 2; //Final int to control to loop for data