Installation of the Thread Scheduling Visualizer (TSV)

Hi,
I've already written some realtime applications and now I want to monitor them via TSV. I've downloaded RTS 2.1 with TSV and installed RTS 2.1. I guess TSV isn't installed yet (command "drecord" is not known by solaris). So I think TSV is inside the file "threadsc.gz", isn't it? I've already extracted this file, but still I don't know, how to install TSV.
I've already read the TSV Guide, but there are only very poor informations on the installation of it.
So can anyone explain to me, what the name of the TSV installation file is and how I can install it on Solaris?
Thanks a lot!

Hi Gordon:
TSV can be downloaded when you download the Java RTS 2.1 eval on
Solaris; just to be clear, TSV is based on DTrace (a Solaris specific
tool), hence it's not available for Linux. When you go through the Java
RTS 2,1 eval download process for Solaris (either x86 or SPARC version),
you will see the TSV download link listed on the final page (after having
taken the survey and agreeing with the eval license) -- it's the same
page as the one that also lists the Java RTS 2.1 eval download link.
The name of the TSV bundle on that page is "tsv-1.2.tar.gz". All you
need to do to install this is to unpack it.
HTH,
-Carlos Lucasius
http://sites.google.com/site/javartsandjavaseforembedded/

Similar Messages

  • Thread Scheduling Visualizer - take a look

    Hi,
    I want to share this link with all the sun forum members.
    It is about "The Sun Java Real-Time System Thread Scheduling Visualizer"
    [http://java.sun.com/javase/technologies/realtime/reference/TSV/JavaRTS-TSV.html]
    Sun you are simply too great ;)
    thanks,
    swapnaja
    Edited by: swapnaja on Mar 16, 2009 6:43 AM
    Edited by: swapnaja on Mar 16, 2009 6:48 AM

    Hi,
    Glad it worked for you too. I'm so grateful to 'turboontheovens' for posting this solution, it was driving me crazy!
    Claire x

  • IS a thread scheduler part of JVM or OS ?

    Hi Folks,
    Just curious if the thread scheduler is a part of the JVM or OS, or either or both ?
    I tried few thread pages in JLS,but couldnot locate the exact sentence describing this.
    However some other resources have given me contradicting information.
    For example, [Reference1|http://www.deitel.com/articles/java_tutorials/20051126/JavaMultithreading_Tutorial_Part3.html] states that it is a part of the OS,whereas [Reference2|http://book.javanb.com/java-threads-3rd/jthreads3-CHP-9-SECT-1.html] states that it is a part of both.(I am not sure about the authority of these links.)
    So assuming, thread scheduling is done by JVM it is a part of the JVM only or it uses the underlying OS for support.
    Thank you for the consideration.

    This statement:
    The JVM ... operates like a mini OS and schedules its own threads regardless the underlying operating system.flatly contradicts this statement:
    In some JVMs, the java threads are actually mapped to native OS threads.They cannot both be true.
    Therefore we can say that Threads are part of JVM and OS bothRubbish. There's no 'therefore' about it. You can't draw valid logical inferences from contradictions.
    Guesswork and invalid inferences aside, the fact of the matter is that the semantics of Java threads are specified in the JLS but the execution mechanism is not. 'Any execution strategy that generates only allowed behaviors is an acceptable execution strategy.'
    I am not sure about the authority of these linksNil. They are extracts from books by third parties. Use at own risk. The JLS is where the authority is.
    Reference 2 is particularly poor, as it contradicts itself numerous times.
    For the record, Reference 2 also makes the following claims which as far as I can see are entirely baseless, for the reasons given:
    A Java virtual machine is required to implement a preemptive, priority-based schedulerThe word 'pre-emptive' does not appear in the JLS.
    The Java virtual machine never changes the priority of a thread, even if the thread has been running for a certain period of timeCan't find that anywhere either.
    the contract between the Java virtual machine and the underlying operating system is that the operating system must generally choose to run the Java thread with the highest priorityThe 'contract' is between the Java code and the JVM, not the JVM and the O/S.
    That's what we mean when we say that Java implements a priority-based schedulerJava isn't required to 'implement' a scheduler at all.
    This scheduler is implemented in a preemptive fashion, meaning that when a higher-priority thread comes along, that thread interrupts (preempts) whatever lower-priority thread is running at the time.This appears nowhere in the JLS.
    The contract with the operating system, however, is not absolute, which means that the operating system can sometimes choose to run a lower-priority thread.In other words it's not pre-emptive. Make up your mind.
    Java's requirement for a priority-based, preemptive scheduling mechanism ...Which is nowhere to be found.
    A Java thread can have one of 11 prioritiesMIN_PRIORITY is 1, MAX_PRIORITY is 10: that makes 10, not 11.
    In fact, preemption means only that a higher-priority thread runs instead of a lower-priority oneNo it doesn't. It means that when a higher-priority thread becomes ready it pre-empts the execution of any lower-priority threads that are currently executing regardless of time-slice etc. This is a feature of real-time systems that Java is not required to implement.
    Summing up, the words 'pre-emptive' does not appear in the JLS, and the word 'scheduler' only appears in reference to sleep() and yield(), without any implication that the JVM has to implement one itself.

  • Thread scheduling problem in WLS5.1

    We use a Timer Servlet to schedule some back end tasks, however we found
              that from time to time the thread scheduling often get delayed or ahead in a
              outragous magtitude.
              We run the servlet inside WLS, and right after start up, the timer works
              perfect, but after long enough time (more than one day), the timer started
              to behave weird. It could get delayed for as much as hours, and then
              suddenly fired up all delayed tasks in a very short period of time. We then
              try to run a very simple Timer doing only wake up every 10 minutes and print
              one line, that failed too. We are running WLS5.1+sp3 on
              Solaris2.6(Generic_105181-19 sun4u sparc SUNW,Ultra-5_10) with jdk1.2.1_04.
              BTW, we found that it ran well on NT, at least for three days without
              problem.
              Any feedback will be appreciated!
              Qingxiang Ke
              below is the source for the simple timer, and deploy properties for it
              inside weblogic.properties file.
              SimpleTimerServlet.java
              package com.cysive.test;
              import java.io.*;
              import java.util.*;
              import javax.servlet.*;
              import javax.servlet.http.*;
              public class SimpleTimerServlet extends HttpServlet
              class Sleepy implements Runnable
              public void run()
              while(true)
              try
              long wakeUpTime = 600 * 1000;
              Thread.currentThread().sleep(wakeUpTime);
              System.out.println(new Date().toString() + " SimpleTimer Yawn
              ............ Yawn ............");
              catch(InterruptedException ie){}
              private static boolean timerIsRunning = false;
              public void init()
              if(! timerIsRunning)
              Thread sleepy = new Thread(new Sleepy());
              sleepy.start();
              timerIsRunning = true;
              public void doGet(HttpServletRequest request,
              HttpServletResponse response)
              throws IOException, ServletException
              doPost(request, response);
              public void doPost(HttpServletRequest request,
              HttpServletResponse response)
              throws IOException, ServletException
              OutputStream os = response.getOutputStream();
              os.write("look at your std out!!!".getBytes());
              os.flush();
              os.close();
              deploy properties in weblogic.properties
              weblogic.httpd.register.simpletimer=com.cysive.test.SimpleTimerServlet
              weblogic.system.startupClass.servletSimpleTimer=weblogic.servlet.utils.Servl
              etStartup
              weblogic.system.startupArgs.servletSimpleTimer=servlet=simpletimer
              

    We use a Timer Servlet to schedule some back end tasks, however we found
              that from time to time the thread scheduling often get delayed or ahead in a
              outragous magtitude.
              We run the servlet inside WLS, and right after start up, the timer works
              perfect, but after long enough time (more than one day), the timer started
              to behave weird. It could get delayed for as much as hours, and then
              suddenly fired up all delayed tasks in a very short period of time. We then
              try to run a very simple Timer doing only wake up every 10 minutes and print
              one line, that failed too. We are running WLS5.1+sp3 on
              Solaris2.6(Generic_105181-19 sun4u sparc SUNW,Ultra-5_10) with jdk1.2.1_04.
              BTW, we found that it ran well on NT, at least for three days without
              problem.
              Any feedback will be appreciated!
              Qingxiang Ke
              below is the source for the simple timer, and deploy properties for it
              inside weblogic.properties file.
              SimpleTimerServlet.java
              package com.cysive.test;
              import java.io.*;
              import java.util.*;
              import javax.servlet.*;
              import javax.servlet.http.*;
              public class SimpleTimerServlet extends HttpServlet
              class Sleepy implements Runnable
              public void run()
              while(true)
              try
              long wakeUpTime = 600 * 1000;
              Thread.currentThread().sleep(wakeUpTime);
              System.out.println(new Date().toString() + " SimpleTimer Yawn
              ............ Yawn ............");
              catch(InterruptedException ie){}
              private static boolean timerIsRunning = false;
              public void init()
              if(! timerIsRunning)
              Thread sleepy = new Thread(new Sleepy());
              sleepy.start();
              timerIsRunning = true;
              public void doGet(HttpServletRequest request,
              HttpServletResponse response)
              throws IOException, ServletException
              doPost(request, response);
              public void doPost(HttpServletRequest request,
              HttpServletResponse response)
              throws IOException, ServletException
              OutputStream os = response.getOutputStream();
              os.write("look at your std out!!!".getBytes());
              os.flush();
              os.close();
              deploy properties in weblogic.properties
              weblogic.httpd.register.simpletimer=com.cysive.test.SimpleTimerServlet
              weblogic.system.startupClass.servletSimpleTimer=weblogic.servlet.utils.Servl
              etStartup
              weblogic.system.startupArgs.servletSimpleTimer=servlet=simpletimer
              

  • Thread scheduling mechanism in SUN's VM

    I've the problem, that n threads share a resource
    (sharedObject).
    The synchronization is done in an synchronized
    Block:
    synchronized( sharedObject )
    // do something with sharedIbject
    I would like to know in which order the thread scheduler
    of SUN Solaris VM of the JDK 1.3 or in general,
    gives the lock of the sharedObject to one of the thread, which
    are waiting for the lock of the sharedObject.
    Is there something like FIFO, so that it's safe, that all waiting
    threads will get the sharedObject in the right order,
    or do i have to implement a queueing mechanism with wait and
    notify.
    thanks

    If you're writing a Java program that uses threads, the thing to do is to follow the rules that Java provides, not the rules of a particular thread scheduler.
    There is no guarantee about which order the threads will get access to the sharedObject without writing explicit code for it.

  • How do I increase the thread limit on Linux?

    OS: Linux (or Sun Linux)
    Kernel: 2.4.9-31enterprise
    Memory: 2GB
    CPUs: 2
    Java: 1.4.1_01
    I have a dual processor Cobalt LX50 and I am running
    into a thread limit with Java. No matter what I do
    with the Java JVM parameters (heap and stack), I
    cannot get any more than 949 threads. My "top" and "vmstat" output
    shows that I am no where near my memory capacity.
    Below is a simple Java program (28 lines long) I have
    used to test this limit. My question is simply how do
    I go about increasing this limit. Is there some kernel
    parameter I can set or maybe have to recompile into
    the kernel? My /proc/sys/kernel/threads-max is 16383.
    I do not believe my ulimit settings are the problem,
    but I will post them anyway. The problem also occurs
    on non-Cobalt (plain old PCs) uniprocessor machines
    maxxing at about 1018 threads. The other interesting thing is that when I run the same program through the Kaffe VM with -Xms64M and -Xmx512M I do not run into the thread limit problem. Does anyone know what I need to change to get my thread limit up? Also, rewriting the way the program uses threads is not an option.
    [root]# ulimit -a core file size (blocks) 0
    data seg size (kbytes) unlimited
    file size (blocks) unlimited
    max locked memory (kbytes) unlimited
    max memory size (kbytes) unlimited
    open files 1024
    pipe size (512 bytes) 8
    stack size (kbytes) 8192
    cpu time (seconds) unlimited
    max user processes 8191
    virtual memory (kbytes) unlimited
    /*******************************Sample java program
    testing thread
    limits***********************************************/
    import java.util.Timer;
    import java.util.TimerTask;
    public class Reminder {
    Timer timer;
    static int cnt;
    public Reminder(int seconds) {
    timer = new Timer();
    timer.schedule(new RemindTask(), seconds*1000);
    class RemindTask extends TimerTask {
    public void run() {
    System.out.println("Time's up!");
    timer.cancel(); //Terminate the timer thread
    public static void main(String args[]) {
    System.out.println("About to schedule task.");
    cnt = 0;
    while (true) {
    new Reminder(90);
    System.out.println("Thread #" + ++cnt + "
    scheduled.");

    Confer also:
    http://forum.java.sun.com/thread.jsp?forum=37&thread=358276

  • Error in creating the process scheduler

    Hi all,
    I recently installed with Peolesoft 8.9 and tools 8.49 and oracle 9i.
    Now i tried to create the process scheduler.
    I have got the error in the image http://narchu.coolinc.info/install_failed.html
    what i did.
    from the menu i selected to create a new process scheduler.
    gave the name as fsdmo
    configure? yes
    changed the username to VP1
    changed the password to VP1
    and then load the config as shown.
    start the process scheduler.
    then it gave the error in the image in the above link.
    The password is not gettin encrypted. i think it must be encrypted, but i am not sure.
    Can any one please help solving it.
    Thank you,
    Bye.

    I think if it is default installation without screwing anything VP1 can start app and Proc server.
    But Nicolas is right, to get more we need log file....it may be database connectivity issue, password encryption issue , tuxedo issue and much more.If u can post the logs it will helpful to diagnose your issue.

  • I am getting the below error while bringing up the Process Scheduler error

    Hello ,
    I am getting the below error while bringing up the Prcs Scheduler.
    Cannot open message catalog TMADMIN_CAT
    Starting Process Scheduler Server PSNT for Database FSUAT ...
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 752; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    INFO: BEA Tuxedo, Version 8.1, 32-bit, Patch Level 192
    NLS:4: Cannot open message catalog LIBTUX_CAT, set 1, num 1571; check TUXDIR=C:\
    bea\Tuxedo8.1, LANG=English_United States.1252
    NLS:4: Cannot open message catalog LIBTUX_CAT, set 1, num 1570; check TUXDIR=C:\
    bea\Tuxedo8.1, LANG=English_United States.1252
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 793; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    exec BBL -A :
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 820; check TUX
    DIR=C:\bea\Tuxedo8.1, LANG=English_United States.1252
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 801; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    exec PSDSTSRV -p 1,600:1,1 -sPostReport -- -C psprcs.cfg -CD FSUAT -PS PSNT -A s
    tart -S PSDSTSRV :
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 1685; check TU
    XDIR=C:\bea\Tuxedo8.1, LANG=English_United States.1252
    tmboot: NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 827; check TUX
    DIR=C:\bea\Tuxedo8.1, LANG=English_United States.1252
    tmshutdown -y
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 753; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 916; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 907; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 936; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 948; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 775; check TUXDIR=C:\b
    ea\Tuxedo8.1, LANG=English_United States.1252
    Please suggest.

    Duplicate thread :
    Re: I am getting the attached error while bringing up the Prcs Scheduler
    Nicolas.

  • I am trying to install Adobe Creative Suite CS2 and I am at the last stage of installation but the pop up window is asking that I insert CD

    I am trying to install Adobe Creative Suite CS2 and I am at the last stage of installation but the pop up window is asking that I insert CD #2 but, of course, there is no cd! I tried clicking okay and double clicking the image for CD #2 or file #2 but nothing works - Help!

    CS5-thru-CC PPro/Encore tutorial list http://forums.adobe.com/thread/1448923 will help
    The bottom section of the link above has several Adobe links, and other information, on downloading Premiere Pro CS6 and the bundled Encore CS6, and the TWO ADDED downloads for the Encore library content, to author a DVD or BluRay... and the tutorial list includes learning how to use Encore... pay particular attention to the picture in reply 3 at this link - https://forums.adobe.com/thread/1516173 (picture first posted by Ann Bens and reposted by Stan Jones)

  • The problem in the thread pool implemented by myself

    Hello, I need to a thread pool in J2ME CDC 1.0 + FP 1.0, so I implemented a simple one by myself that also meets my own requirement.
    Here is the main idea:
    The thread pool creates a fixed number of threads in advance. When a task comes, it is put in the waiting list. All threads tries to get the tasks from the waiting list. If no task exists, the threads wait until someone wakes them up.
    Here are the requirements from myself:
    1. when a task has finished its work in one execution, it is put in the waiting list for the next run.
    2. the task can control the delay between when the task owner tries to put it in the waiting list and when the task is actually put in the waiting list. I need this function because sometimes I don't want the tasks to run too often and want to save some CPU usage.
    In my program, I creates two thread pools. In one pool, every task don't use the delay, and the thread pool works very well. The other pool has the tasks that use the delay, and sometimes, as I can see from the printed information, there are many tasks in the waiting list but 0 or 1 thread executes tasks. It seems that the waiting threads cannot wake up when new tasks comes.
    I suspect the code in addTask(), but cannot find the reason why it fails. Could anyone please help me find out the bug in my code? I put the code of thread pool below
    Thank you in advance
    Zheng Da
    ThreadPool.java
    package j2me.concurrent;
    import java.util.LinkedList;
    import java.util.Timer;
    import java.util.TimerTask;
    import alvis.general.Util;
    public class ThreadPool {
         private int maxQueueSize;
         private boolean running = true;
         private Thread[] threads;
         private LinkedList tasks = new LinkedList();
         private Timer timer = new Timer(true);
         private AtomicInteger usingThreads = new AtomicInteger(0);
         private synchronized boolean isRunning() {
              return running;
         private synchronized void stopRunning() {
              running = false;
         private synchronized PoolTask getTask() {
              while (tasks.isEmpty() && isRunning()) {
                   try {
                        this.wait();
                   } catch (InterruptedException e) {
                        e.printStackTrace();
              if (tasks.isEmpty())
                   return null;
              // Util.log.info(Thread.currentThread().getName() +
              // " gets a task, left tasks: " + tasks.size());
              return (PoolTask) tasks.removeFirst();
         private synchronized void addTaskNoDelay(PoolTask task) {
              tasks.addLast(task);
              notifyAll();
         private synchronized void addTask(final PoolTask task) {
              long delay = task.delay();
              if (delay == 0) {
                   addTaskNoDelay(task);
              } else {
                   timer.schedule(new TimerTask() {
                        public void run() {
                             addTaskNoDelay(task);
                   }, delay);
         private synchronized int numTasks() {
              return tasks.size();
         private class PoolThread extends Thread {
              public void run() {
                   Util.poolThreads.inc();
                   while (isRunning()) {
                        PoolTask task = getTask();
                        if (task == null) {
                             Util.poolThreads.dec();
                             return;
                        usingThreads.inc();
                        long currentTime = System.currentTimeMillis();
                        task.run();
                        long elapsedTime = System.currentTimeMillis() - currentTime;
                        if (elapsedTime > 100)
                             System.err.println(task.toString() + " takes " + ((double) elapsedTime)/1000 + "s");
                        usingThreads.dec();
                        if (!task.finish()) {
                             addTask(task);
                   Util.poolThreads.dec();
         public ThreadPool(int size, int taskQueueSize) {
              maxQueueSize = taskQueueSize;
              threads = new Thread[size];
              for (int i = 0; i < threads.length; i++) {
                   threads[i] = new PoolThread();
                   threads.start();
         public synchronized boolean executor(PoolTask task) {
              if (!isRunning()) {
                   return false;
              Util.log.info("Thread Pool gets " + task + ", there are "
                        + numTasks() + " waiting tasks");
              if (numTasks() >= maxQueueSize) {
                   return false;
              addTask(task);
              return true;
         public synchronized void destroy() {
              stopRunning();
              timer.cancel();
              // TODO: I am not sure it can wake up all threads and destroy them.
              this.notifyAll();
         public synchronized void printSnapshot() {
              System.err.println("using threads: " + usingThreads + ", remaining tasks: " + tasks.size());
    PoolTask.javapackage j2me.concurrent;
    public interface PoolTask extends Runnable {
         * It shows if the task has already finished.
         * If it isn't, the task will be put in the thread pool for the next execution.
         * @return
         boolean finish();
         * It shows the delay in milliseconds that the task is put in the thread pool.
         * @return
         long delay();

    are receiving/sends tasks packets time consuming operation in your case or not? if it is not you do not need to use thread pools at all. you can create a queue like in your code through the linked list and dispatch this queue periodically with minimum monitor usage. try this.
    import java.util.LinkedList;
    public class PacketDispatcher extends Thread {
        LinkedList list = new LinkedList();
        public PacketDispatcher (String name) {
            super(name);
        public void putTask(Task task) {
            synchronized (list) {
                list
                        .add(task);
                list.notify();
        public void run() {
            while (true/* your condition */) {
                Task task = null;
                synchronized (list) {
                    while (list.isEmpty())
                        try {
                            list.wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                    task = (Task)list
                            .poll();
                if (task == null) {
                    try {
                        Thread
                                .sleep(1);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    continue;
                task
                        .run();
                if (!task.isFinished()) {
                    putTask(task);
                Thread
                        .yield();
        public static void main(String[] args) {
            // just for test
            try {
                Thread.sleep (10000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            PacketDispatcher dispatcher = new PacketDispatcher("Packet Dispatcher");
            Task task = new Task();
            dispatcher.putTask(task);
            dispatcher.start();
            try {
                Thread.sleep (10000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            Task task2 = new Task();
            dispatcher.putTask(task2);
    class Task {
        long result = 0;
        public boolean isFinished () {
            if (getResult() >= 10000000) {
                return true;
            return false;
        public void run() {
            for (int i = 0; i < 1000; i++) {
                result += i;
        public long getResult () {
            return result;       
    }

  • The G-Force visualization from Soundspectrum does not work as expected on Windows 8.1 - d3dx9_43.dll is missing - Incompatible application

    I get this message when I install the G-Force visualization from Soundspectrum on Windows 8.1. It says that d3dx9_43.dll is missing and is incompatible with Windows 8.1. it was for Windows Media Player on Windows 8.1. The visualization was only for Windows
    XP/Vista/7.
    The program can't start because d3dx9_43.dll is missing from your computer. Try reinstalling the program to fix this problem. 

    Hi,
    I made a test in our test enviroment, Windows 8.1 X64 Enterprise, no problem with it.
    According to the error message, it should be directX problem, your system lost d3dx9_43.dll. please install the DirectX Runtime to solve your issue:
    DirectX End-User Runtimes (June 2010):http://www.microsoft.com/en-us/download/details.aspx?id=8109
    Roger Lu
    TechNet Community Support
    According to the SoundSpectrum website, after completing the process, it required XP/Vista/7. It worked on my Vista computer, while my laptop did not. After installation, it canceled, and now d3dx9_43.dll is missing.

  • Question about synchronize() statement and thread scheduling?

    I have threads accessing a shared LinkedList in the main thread. I made use of the Collections.synchronizedList() to avoid concurrent modifications. one of the threads is a timer thread and it has a priority of 5 and the other threads are message reception threads and i made them of a lower priority just to allow the timer thread to be executed on time. According to the javaAPI, all iterations on the synchronized list should be done using synchronized(synchronizedListRef){} and this is what i do,
    The problem is even after setting the priority of the reception threads lower than the timer thread, the reception threads are sometimes executed more than once and the timer thread is delayed. Lets assume the situation where the timer reaches the point where it has to acquire the lock (the synchronized statement) and it discovers that the lock is already taken and it cant access the list because the other thread (of a lower priority) is iterating over it. shouldnt the higherpriority thread be executed after that the reception thread (that is blocking the timer thread) finishes its execution and release the lock (even if there are other reception thread waiting)??
    does the priority play a role when a thread is blocked?

    Asady wrote:
    I have threads accessing a shared LinkedList in the main thread. I made use of the Collections.synchronizedList() to avoid concurrent modifications. Make sure you explicitly sync around all iterations. Just using Collections.sync is not enough.
    The problem is even after setting the priority of the reception threads lower than the timer thread, the reception threads are sometimes executed more than once and the timer thread is delayed.There's no guarantee as to how priority will be interpreted. The scheduler implementation is free to do pretty much anything.
    As for how to solve your problem, you might want to look at java.util.concurrent.*, e.g. PriorityQueue. If the classes there don't give you just what you need, you may be able to build on them, or at least get ideas from them. Bottom line is that if you want a specific scheduling algorithm, you'll have to implement it yourself, since Threads' priority semantics are only very loosely specified by the JLS.

  • Is my password to install adobe flash player installer 14 the same as my adobe password?

    is my password to install adobe flash player 14 the same as my adobe password?

    This is my personal machine - an iMac - and the installer insists on a password being used.  I have tried all my passwords and nothing fits.  I have spent hours trying to resolve this problem and so have others.  Please help us to get Flash Player.
    Original message----
    From : [email protected]
    Date : 05/11/14 - 01:02 (GMT)
    To : [email protected]
    Subject :  is my password to install adobe flash player installer 14 the same as my adobe password?
        is my password to install adobe flash player installer 14 the same as my adobe password?
        created by Jeromie Clark in Installing Flash Player - View the full discussion
    This password prompt is presented by your operating system, and is intended to keep you from accidentally installing software.
    If this is your personal machine and you don't need a password to log into the computer when it first starts up, you can probably leave the password blank and click OK to get past this prompt.  If this is your personal machine and your normal password isn't working, check to make sure that CAPS LOCK is off, and type the password carefully.
    If this is your work machine and it's asking for an Administrator password, well, you'll need to have a conversation with your friendly IT person.
    Please note that the Adobe Forums do not accept email attachments. If you want to embed a screen image in your message please visit the thread in the forum to embed the image at https://forums.adobe.com/message/6900094#6900094
    Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page:
    To unsubscribe from this thread, please visit the message page at . In the Actions box on the right, click the Stop Email Notifications link.
    Start a new discussion in Installing Flash Player by email or at Adobe Community
    For more information about maintaining your forum email notifications please go to http://forums.adobe.com/thread/416458?tstart=0.

  • How does the assignment schedule actually work?

    Hi,
    I have a task sequence deployed to some servers and checking the status of it, it says that "Program Received" but I don't see it in software center. I have it set so that it is available today the 17th with an assignment schedule for tomorrow
    at 3:00. My question is what actually is the assignment schedule for? Is that when it will actually be on the client and running?

    Hi,
    The available time is when they clients will see the new policy and start to download the requred packages in the TS depending on the settings you have made for the TS and the assignment schedule is when the installation will actually take place.
    Regards,
    Jörgen
    -- My System Center blog ccmexec.com -- Twitter
    @ccmexec

  • How to maintain the status of the Thread ?

    How to maintain the status of the Thread ?
    namanc

    I want to know whether a particular thread (java
    application) is completed successfully or not ...
    If the thread is not completed successfully then I
    want to restart the Thread.
    Actually this is the Task Scheduler Application ...
    If the particular task is not running successfully
    then I want to start the Task again ...
    namancThen it could look something like this: // loading the queue
    for each task
        add task to list of incomplete tasks
        enqueue task in work queue
    // dispatcher
    while !done()
        task = workQueue.dequeue();
        New Thread(task).start();When a task finishes, it can call a callback method on the dispatcher. The dispatcher looks at the task's status. If it finished successfully, the task gets removed from the list of incomplete tasks. Else it goes back on the work queue.
    There will be some syncing issues involved. You'll have to use wait() and notify()/notifyAll() to handle the situation where the work queue is empty, and all incomplete tasks are being worked on. And the case where the dispatcher wakes up after the notifyAll() and there's nothing to dequeue and nothing in the list of incomplete tasks.
    Clearly it needs some fine tuning, but I hope you get the idea.

Maybe you are looking for

  • Multiple Apple ID's - Problems logging onto Itunes

    I have tried to reset my password for Itunes. but the once I reset by email - it won't take the new password ??? Is there a lag time?? I just got my new Iphone4s and wanted to download onto my phone...but stupid PC is slow and having problems....When

  • Problem with hp photosmart c5180 and printing from computer

    Hello, I have windows 7 and an hp photosmart c5180 all in one printer, at first, I couldnt scan anything to my computer, so I reinstalled the software and drivers for windows 7, and it scans now, but the printer doesnt respond to the computers comman

  • JOB WORK CHALLAN - CONFIGURATION  related issue with client .

    HI FRIENDS , CLIENT PROCESS STAGE 1: CLIENT SENDING THE SEMI-FINISHED MATERIAL UNDER JOB WORK CHALLAN ( 57-F ) TO JOB-WORKER. LET SAY 1000 STAGE 2: ONCE JOB-WORKER RENDERING (AFTER POLISHING-CLIENT REQ ) THE MATERIAL ,THEY WILL INTIMATE TO THE CLIENT

  • IOS 7: wallpaper scaling workaround

    I have come up with the following workaround for the scaling issue of your personal wallpapers. You need photo processing software on your computer for this. That software should be able to crop and resize your photos, but above all be able to put a

  • AP Mobile News App Wrong Date

    I've had the latest version of this app on my 3g for a while now and haven't had any issues until today. When I clicked on it all the current news stories loaded properly but all were showing December 31, 1969. Again all the news items are current -