Update vector using threads

I've got some threads in my program which will add elements to a static vector.
If two threads want to add the same data to the vector, there will be two exactly the same elements in the vector. How can I make sure there is no two elements containing the same data?
I've tried this, but there are still 2 same elements in the vector at the end.
     if (v.bufferedVector.contains(data)){
          System.out.println("I've got it");
          else{
          v.addElement(data);     
}

sorry, i didn't mean Comparable. i just meant put an equals in there. and put a hashCode() in there too...
class MyDataType implements java.lang.Comparable {
       int ID;
       String localVar;
       String destVar;
       int se;
       String[] data;
       public boolean equals(Object o) {
          MyDataType mdt = (MyDataType)o;
          //somehow determine how "this" equals mdt.
          //you might check all the internals of mdt
          //to "this"

Similar Messages

  • Using threads (SwingWorker) to update JTree component

    Hi,
    Im having a problem trying to update a JTree component (adding child nodes to an existing node) using threads. Im using the SwingWorker3 class (http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html) for threading.
    When the user selects a node for expansion, the logic for fetching the children of the selected node is executed under the construct() method of SwingWorker.
    Once this data is obtained, the job of adding the children to the selected node is done in the finished() method which runs on the event-dispatch thread as per documentation of SwingWorker3.
    The problem Im facing is that even though the data for the children is obtained and the finished() method executes and adds the children to the selected node, they are not visible in the UI.
    If anybody knows how this can be resolved, please let me know. Any help/pointers would be greatly appreciated.
    Rgds
    Sridhar

    I added the tree.updateUI() method call in the finished() method. This renders the children (Yipee!).
    But now I have a new problem. If I collapse and again expand a node, I get a NPE. (I see all the child nodes but a exception is still thrown) The exception happens after my treeWillExpand() and treeExpanded() method implementations. So no probs in my code.
    If you know of a solution, pleeease let me know.
    TIA
    Sridhar
    Exception occurred during event dispatching:
    java.lang.NullPointerException
    at javax.swing.plaf.basic.BasicTreeUI.updateSize(Unknown Source)
    at javax.swing.plaf.basic.BasicTreeUI.toggleExpandState(Unknown Source)
    at javax.swing.plaf.basic.BasicTreeUI.handleExpandControlClick(Unknown Source)
    at javax.swing.plaf.basic.BasicTreeUI.checkForClickInExpandControl(Unknown Source)
    at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(Unknown Source)
    at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

  • Using threads to change button status

    Hi all
    im reworking my conway life adt and trying to build it into an ap (as i have it working as an applet)
    as applets have a repaint command then implementing the generations was pretty easy.
    However in an application i will have to use threads wont i?
    so what i have done is built an ap that builds the life grid using swing buttons (this isnt a swing question by the way its a thread question :p)
    so how would i go about threading my application so it doesnt freeze up?
    here is the code from my swing ap
    import javax.swing.*;
    import java.awt.*;
    public class LifeAp
    private Life gLife;
    private JButton[][] buttons;
    private JFrame frame;
         public LifeAp(int y, int x)
         gLife=new Life(y,x);
         buttons=new JButton[y][x];
         for (int yc=0;yc<y;yc++)
              for (int xc=0;xc<x;xc++)
                   JButton btn=new JButton();
                   btn.setBackground(new Color(204, 204, 204));
                   btn.setText("");
                   buttons[yc][xc]=btn;
         initLife();
         public void buildForm()
         frame = new JFrame("Life");
         frame.getContentPane().setLayout
               (new GridLayout(buttons[0].length,buttons.length));
         for (int y=0;y<buttons.length;y++)
              for (int x=0;x<buttons[0].length;x++)
                   frame.getContentPane().add(buttons[y][x]);
         frame.pack();
         public void setButtons()
         for (int y=0;y<buttons.length;y++)
              for (int x=0;x<buttons[0].length;x++)
                   if (gLife.getStatus(y,x)==0)
                        buttons[y][x].setBackground(new Color(204, 204, 204));
                   else
                        buttons[y][x].setBackground(new Color(255, 255, 0));
         public void initLife()
         buildForm();
         gLife.generateMap();
         setButtons();
         public void show()
         frame.setVisible(true);
         private void exitForm(java.awt.event.WindowEvent evt)
         System.exit(0);
         public static void main(String[] args)
         new LifeAp(16,16).show();
    }the form builds just fine.
    now in the Life adt i have a method called generation()
    so when i call gLife.generation(); the next life phase is calculated
    so i need in a thread to basically say
    gLife.generation();
    setButtons();which will update life then colour the buttons accordingly.
    however i think that maybe im going to hit problems because of static and non static methods etc.
    have i approached this the wrong way? or is this something quite easy to implement into a thread?

    ok so now i have
         public void start()
         animator = new Thread(this);
         animator.start();
         public void run()
         long tm = System.currentTimeMillis();
         while (Thread.currentThread() == animator)
              gLife.generation();
              setButtons();
              validate();
              show();
              try
                   tm += delay;
                   Thread.sleep(Math.max(0, tm - System.currentTimeMillis()));
              catch (InterruptedException e)
                   break;
              frame++;
         }and my current main is
         public static void main(String[] args)
         LifeAp l=new LifeAp(64,64);
         l.show();
         l.start();
         }what should i have in my main code to start my thread?
    if i have
    public static void main(String[] args)
         LifeAp l=new LifeAp(64,64);
         l.show();
         }then the process doesnt run, it just displays the first generation then stops.
    so what do i need to include?

  • Unzip files from a folder which is updating regularly using multithreading

    Hi All,
    I have acode which unzip all the files from a folder .This code picks up all the zipped files at a time and then unzip it and write them to another folder but now my requirement is changed ,suppose the source folder where all the zipped files are present is refreshed or updated with new zipped files regularly then how can I implement in my code multithreading to get several files by threads and send it for unzipping.
    Please suggest with some example or edit my code.
    package com.myprojcet;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipInputStream;
    public class Main {
         * Extracts a zip file
         public void extractZipFile() {
              try {
                   String zipFileName = "C:\\soft\\test"; //Source folder for zipped files
                   //Create input and output streams
                   File SourceDir = new File(zipFileName);
                   File[] zipFiles = SourceDir.listFiles();
                   ZipInputStream inStream = null;
                   OutputStream outStream = null;
                   ZipEntry entry;
                   byte[] buffer = new byte[1024];
                   int nrBytesRead;
                   //Get next zip entry and start reading data
              for(int i=0; i < zipFiles.length; i++) {
                   inStream= new ZipInputStream(new FileInputStream(zipFiles));
                   while((entry = inStream.getNextEntry()) != null) {
                        outStream=new FileOutputStream("C:\\soft\\test2\\"+entry.toString()); //destination folder for unzipped file
                        while ((nrBytesRead = inStream.read(buffer)) > 0) {     
                             outStream.write(buffer, 0, nrBytesRead);
                   //Finish off by closing the streams
                   outStream.close();
                   inStream.close();
              } catch (IOException ex) {
                   ex.printStackTrace();
         * @param args the command line arguments
         public static void main(String[] args) {
              new Main().extractZipFile();
    Thanks
    Sumit
    Edited by: user8687839 on Feb 27, 2012 11:00 PM

    But my question is that if in a source folder we have several files which are in zipped format and the folder is getting updated every min (say) with new zipped files (which are dumped from some outside environment).I need to unzip all the files present in the folder ,if new one comes there then also check for the new zipped file and unzip it.You don't need to keep re-stating that.
    I had written a code for unzipping a file from a folder (thinking the folder is not updated everytime).Or that.
    Now I am thinking of using threads because if I create suppose 5 threads and every threads poll the source folder and pick up a zip file ,send it for unzipping it and again poll the source folder for any new entries?Or that.
    If using the threads here hits performace then what should I use?Err, what you presently have?
    Provide me any sample code or link that would be more useful.You've already written it.

  • How to update eban using query sq01

    hi all,
    how to update eban using sq01 ..pls advice

    Hi,
    Refer to this Thread.
    http://www.****************/Tutorials/SAPQuery/SimpleQuery/SQ1.htm
    Thanks,
    Anitha

  • Updating FK01 using LSMW

    Hi Experts,
    I need to do an upload for  vendor master in transaction FK01.
    I cant use the batch recording method since i come across problems while trying to upload the "wtihhold tax information table". So when I use the direct input method , using program RFBIKR00, I see that it is probably for transaction xk01. Do correct and direct me further on that if I am wrong.
    My question is, that is there any way of updating FK01 using LSMW? I am unable to find an existing thread on this.
    Thanks in advance.
    Regards,
    Trishna

    Hi
    Probably RFBIKR00 supports XK01 because it's the global transaction, FKO1 loads accounting master data only, that means the same operations you need to do by FK01 can be done by XK01: there's the problem?
    Max

  • DPM 2012 Failed to update permissions used in end-user recovery

    Hello everyone,
    I'm going to try the clearest way possible to describe the problem.
    Our test server is Windows Server 2012 with DPM 2012 SP1 CU2 (BKP-SRV01) with a Remote SQL server 2012 (PBASC)
    I protected a share folder on a DC on Windows Server 2008 R2 (PAD)
    When I activate End-User Recovery I get a warning in the monitor tab that say this
    Failed to update permissions used for end-user recovery on pad. Permissions update failed for the following reason: (ID 3123)
    DPM is unable to enumerate contents in pad_PartageTest on the protected computer BKP-SRV01. Recycle Bin, System Volume Information folder, non-NTFS volumes, DFS links, CDs, Quorum Disk (for cluster) and other removable media cannot be protected. (ID 38 Details:
    the end user recovery is working, but i do not know if it affect other things. I also get that message when i try to browse on the DPM server when creating a protection group
    When I go see the DPM Server / File and Storage Services / Shares on Server Manager i get  "Failed to retrieve folder permission" in the properties of the Protected server share.
    I tried to search for almost 2 days without finding anything about that particular issue.
    Is there a way (clean way) to fix the issue?
    Thanks in advance for the help!

    Closing for housekeeping.
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This
    posting is provided "AS IS" with no warranties, and confers no rights.
    That's not very helpful. I've got the same issue :(
    Comes up for servers where a protection group related to it errors out (recovery point failure usually).

  • Retrieving records using Thread

    I am a newbie in Java Servlet programming. I want to retrieve some records from my db2 database every 5 minutes and then display the result for viewing.
    I have no idea where should I put my html tags. Assuming that my program only have 2 methods which are the doPost method and runningThread method, should I put the tags within the doPost method or inside the running thread?
    Example or tutorial are good in term of understanding for a beginner.
    Thanks in advanced for any help.

    You don't need to use threads to do it. If it is just updated response that you need, you can achieve it by setting headers appropriately for autorefresh.
    In your doPost method , call
    response.setIntHeader("Refresh", 300) the browser re-requests the page after 300 seconds
    Then you can pull the new data and display.
    HTH

  • Sorting a vector using the selection sort method

    I have to write a program that sorts a Vector using the selection sort algorithm. Unfortunately the textbook only has about 2 pages on vectors so needless to say I'm pretty clueless on how to manipulate vectors. However I think I'm on the right path, however I'm stuck on one part as shown in the code below.     
    private static void  selectionSort(Vector parts)
          int index;
            int smallestIndex;
            int minIndex;
            int temp = 0;
            for (index = 0; index < parts.size() - 1; index++)
              smallestIndex = index;
              for (minIndex = index + 1; minIndex < parts.size(); minIndex++)
               if (parts.elementAt(minIndex) < parts.elementAt(smallestIndex))  // this is where I'm having trouble
                  smallestIndex = minIndex;
                parts.setElementAt(temp, smallestIndex);
                parts.setElementAt(smallestIndex, index);
                parts.setElementAt(index, temp); if (parts.elementAt(minIndex) < parts.elementAt(smallestIndex))
    is returning "ProcessParts3.java:51: operator < cannot be applied to java.lang.Object,java.lang.Object"
    Here is the full program:
    import java.util.*;
    import java.io.*;
    public class ProcessParts3
         static Vector parts;
         public static void main(String[] args)
              loadVector();
         private static void loadVector()
         try
              Scanner fileIn = new Scanner(new File("productionParts.txt"));
              parts = new Vector();
              String partIn;
              while (fileIn.hasNext())
                   partIn = fileIn.nextLine();
                        parts.addElement(partIn.trim());
              selectionSort(parts);
                   for (int i = 0; i < parts.size(); i ++)
                   System.out.println(parts.elementAt(i));
         catch(Exception e)
              e.printStackTrace();
         private static void  selectionSort(Vector parts) //from this part down I'm responsible for the coding, everything
                                                               // everything above this was written by the teacher
                 int index;
            int smallestIndex;
            int minIndex;
            int temp = 0;
            for (index = 0; index < parts.size() - 1; index++)
                smallestIndex = index;
                for (minIndex = index + 1; minIndex < parts.size(); minIndex++)
                    if (parts.elementAt(minIndex) < parts.elementAt(smallestIndex))
                        smallestIndex = minIndex;
                parts.setElementAt(temp, smallestIndex);
                parts.setElementAt(smallestIndex, index);
                parts.setElementAt(index, temp);
    }Edited by: SammyP on Nov 27, 2009 11:43 AM

    SammyP wrote:
    I have to write a program that sorts a Vector using the selection sort algorithm...Hmmm.... Your teacher is, in my humble opinion, a bit of a tard.
    1. Vector is basically deprecated in favor of newer implementations of the List interface which where introduced in [the collections framework|http://java.sun.com/docs/books/tutorial/collections/index.html] with Java 1.5 (which became generally available back in May 2004, and went end-of-support Oct 2009). ArrayList is very nearly a "drop in" replacement for Vector, and it is much better designed, and is marginally more efficient, mainly because it is not syncronised, which imposes a small but fundamentally pointless overhead when the collection is not being accessed across multiple threads (as is the case in your program).
    2. Use generics. That "raw" Vector (a list of Objects) should be a genericised List<String> (a list of Strings)... because it's compile-time-type-safe... mind you that definately complicates the definition of your static sort method, but there's an example in the link... Tip: temp should be of type T (not int).
    Note that String implements [Comparable<String>|http://java.sun.com/javase/6/docs/api/java/lang/Comparable.html], so two String's can safely be compared using the compareTo method... In Java the mathematical operators (<, >, &#43;, -, /, &#42;, etc) are only applicable to the primitive types (byte char, int, float, etc)... The Java Gods just chose to muddy the waters (especially for noobs) by "overloading" the &#43; operator for String (and String only) to enable succinct, convenient string-concatenation... which I personally now see as "a little bit of a mistake" on there part.
         private static void  selectionSort(Vector parts)  {
    int index, smallestIndex, minIndex, temp = 0;
    for (index = 0; index < parts.size() - 1; index++) {
    smallestIndex = index;
    for (minIndex = index + 1; minIndex < parts.size(); minIndex++) {
    if (parts.elementAt(minIndex) < parts.elementAt(smallestIndex)) {
    smallestIndex = minIndex;
    parts.setElementAt(temp, smallestIndex);
    parts.setElementAt(smallestIndex, index);
    parts.setElementAt(index, temp);
    }3. ALLWAYS use {curly braces}, even when not strictly necessary for correctness, because (a) they help make your code more readable to humans, and also (b) if you leave them out, you will eventually stuff it up when you insert a line in the expectation that it will be part of the if statement (for example) but you forgot to also add the now mandatory curly-braces... This is far-too-common source of bugs in noob-code. Almost all professionals, nearly allways allways use curly braces, most of the time ;-)
    4. Variable names should be meaningful, except (IMHO) for loop counters... Ergo: I'd rename index plain old i, and minIndex to plain old j
        for ( int i=0; i<list.size()-1; ++i) {
          int wee = i; // wee is the index of the smallest-known-item in list.
          for ( int j=i+1; j<list.size(); ++j ) {Cheers. Keith.
    Edited by: corlettk on 28/11/2009 09:49 ~~ This here fraggin forum markup friggin sucks!

  • TS1398 I have an iPad 2 that is updated and using 6.0.1. It is connecting to my wifi just fine. I just purchased a 4th generation iPad. It shows it is connected to the same wifi, same strong signal, but it will not work. HELP!!!

    I have an iPad 2 that is updated and using 6.0.1. It is connecting to my wifi just fine. I just purchased a 4th generation iPad. It shows it is connected to the same wifi, same strong signal, but it will not work. HELP!!!

    Some things to try first:
    1. Turn Off your iPad. Then turn Off (disconnect power cord for 30 seconds or longer) the wireless router & then back On. Now boot your iPad. Hopefully it will see the WiFi.
    2. Go to Settings>Wi-Fi and turn Off. Then while at Settings>Wi-Fi, turn back On and chose a Network.
    3. Change the channel on your wireless router (Auto or Channel 6 is best). Instructions at http://macintoshhowto.com/advanced/how-to-get-a-good-range-on-your-wireless-netw ork.html
    4. Go into your router security settings and change from WEP to WPA with AES.
    5.  Renew IP Address: (especially if you are droping internet connection)
        •    Launch Settings app
        •    Tap on Wi-Fi
        •    Tap on the blue arrow of the Wi-Fi network that you connect to from the list
        •    In the window that opens, tap on the Renew Lease button
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    iOS 6 Wifi Problems/Fixes
    Fix For iOS 6 WiFi Problems?
    http://tabletcrunch.com/2012/09/27/fix-ios-6-wifi-problems/
    Did iOS 6 Screw Your Wi-Fi? Here’s How to Fix It
    http://gizmodo.com/5944761/does-ios-6-have-a-wi+fi-bug
    How To Fix Wi-Fi Connectivity Issue After Upgrading To iOS 6
    http://www.iphonehacks.com/2012/09/fix-wi-fi-connectivity-issue-after-upgrading- to-ios-6.html
    iOS 6 iPad 3 wi-fi "connection fix" for netgear router
    http://www.youtube.com/watch?v=XsWS4ha-dn0
    Apple's iOS 6 Wi-Fi problems
    http://www.zdnet.com/apples-ios-6-wi-fi-problems-linger-on-7000004799/
    ~~~~~~~~~~~~~~~~~~~~~~~
    How to Fix a Poor Wi-Fi Signal on Your iPad
    http://ipad.about.com/od/iPad_Troubleshooting/a/How-To-Fix-A-Poor-Wi-Fi-Signal-O n-Your-iPad.htm
    iOS Troubleshooting Wi-Fi networks and connections  http://support.apple.com/kb/TS1398
    iPad: Issues connecting to Wi-Fi networks  http://support.apple.com/kb/ts3304
    WiFi Connecting/Troubleshooting http://www.apple.com/support/ipad/wifi/
    How to Fix: My iPad Won't Connect to WiFi
    http://ipad.about.com/od/iPad_Troubleshooting/ss/How-To-Fix-My-Ipad-Wont-Connect -To-Wi-Fi.htm
    iOS: Connecting to the Internet http://support.apple.com/kb/HT1695
    iOS: Recommended settings for Wi-Fi routers and access points  http://support.apple.com/kb/HT4199
    How to Quickly Fix iPad 3 Wi-Fi Reception Problems
    http://osxdaily.com/2012/03/21/fix-new-ipad-3-wi-fi-reception-problems/
    iPad Wi-Fi Problems: Comprehensive List of Fixes
    http://appletoolbox.com/2010/04/ipad-wi-fi-problems-comprehensive-list-of-fixes/
    Fix iPad Wifi Connection and Signal Issues  http://www.youtube.com/watch?v=uwWtIG5jUxE
    Fix Slow WiFi Issue https://discussions.apple.com/thread/2398063?start=60&tstart=0
    How To Fix iPhone, iPad, iPod Touch Wi-Fi Connectivity Issue http://tinyurl.com/7nvxbmz
    Unable to Connect After iOS Update - saw this solution on another post.
    https://discussions.apple.com/thread/4010130
    Note - When troubleshooting wifi connection problems, don't hold your iPad by hand. There have been a few reports that holding the iPad by hand, seems to attenuate the wifi signal.
    ~~~~~~~~~~~~~~~
    If any of the above solutions work, please post back what solved your problem. It will help others with the same problem.
     Cheers, Tom

  • Not able to fetch updated data using jdbc and oracle 10g

    Whenever i m updating the data and fetching the same record after updating i m not able to get the fresh/new updated data , old record is fetched every time, but when i checked in database the record gets updated successfully , even if i fire the query two times after 10 seconds using Thread.sleep even then problem persist.
    Please help me out!!!!!!!!
    Implementation has been stucked up!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :(

    Well its okWhat is OK? Your stuff working now?
    i m doing the same thing Apparently not.
    please go thru the below code fragment:
    code for Update :::
    DataAccessBean1 partsHistoryDataAccessBean = new
    DataAccessBean1(context);
    partsHistoryDataAccessBean.setData(data);
    partsHistoryDataAccessBean.update();
    After Updating i m forwading it to the other servletForwarding what? Why do you need another servlet? Just do the query, put the new data into the response object, and return.
    According to your assumption i should get the updated
    data on the other screen but Nope, you don't understand what I'm saying.
    %

  • How can I  get System dates  with time scheduler using threads

    how can I get System dates with time scheduler using threads.is there any idea to update Date in my application along with system Date automatic updation...

    What the heck are you talking about and whatr has it to do with threads?
    Current time: System.currentTimeMillis. Date instances are not supposed to be updated.

  • Using threads in a neural network

    Hello,
    I've written a neural network and I'm wondering how I could use threads in it's execution to 1) increase (more precisely achieve!) learning speed and 2) print out the current error value for the network so that I can see how it is working without using the de-bugger. Basically, i've read the Concurrency tutorial but I'm having trouble getting my head around how I can apply it to my network (must be one of those days!)
    I'll give a brief explanation of how i've implemented the NN to see if anybody can shed any light on how I should proceed (i.e. whether it can be threaded, what parts to thread etc.)
    The network consists of classes:
    Neuron - stores input values to be put into the network and performs the activation functions (just a mathematical operation)
    WeightMatrix - contains random weights in a 2-D array with methods for accessing and changing those weights based on output error
    Layer - simply an array that stores a collection of neurons
    InputPattern - stores the values in an array and target value of a pattern (e.g. for logical AND i would store in pattern[0] = 1; pattern [1] = 1; target = 1;)
    PatternSet - set of InputPatterns stored so that they can be input into the network for learning
    NeuralNetwork - the main class that I want to thread. This class contains multiple layers and multiple WeightMatrices (that connects the neurons in each layer). The learn algorithm then uses the methods of the previous classes to generate neuron inputs and ouputs and error values given a specific input. It uses a loop that iterates through as follows:
        public float learn(PatternSet p)
            InputPattern currentPattern = null;
            double netError=0f;
            float previousError=0f;
            float outputValue = 0f;
            float sum=0f;
            float wcv=0f;
            float output1=0f;
            float output2=0f;
            float currentError=0f;
            float multiply=0f;
            float outputError = 0f;
            float weight = 0f;
            int count;
            int setPosition=0;
            int setSize = p.getSetSize();
            Neuron outputNeuron = layers[getNumberOfLayers()-1].getNeuron(0);
            //execute learning loop and repeat until an acceptable error value is obtained
            do
                 //set input layer neuron values to pattern values
                currentPattern = p.getPattern(setPosition);
                for (int i=0; i<currentPattern.getPatternSize(); i++)
                    layers[0].getNeuron(i).setNeuronInput(currentPattern.getValue(i));
                currentError = layers[getNumberOfLayers()-1].getNeuron(0).getOutputError();
                for (int a=0; a<layers[getNumberOfLayers()-1].getNumberOfNeurons(); a++)
                    //set target value of output neuron
                    layers[getNumberOfLayers()-1].getNeuron(a).setTarget(currentPattern.getTarget());
                //iterates between weight layers - i.e. there will be a weight matrix between each layer of the NN
                for (int i=0; i<getNumberOfLayers()-1; i++)
                    for (int j=0; j<layers[i+1].getNumberOfNeurons(); j++)
                        sum =0f;
                        count=0;
                        for (int k=0; k<layers.getNumberOfNeurons(); k++)
    weight = weights[i].getWeight(k,j);
    outputValue = layers[i].getNeuron(count).getOutput();
    multiply = layers[i].getNeuron(count).getOutput() * (weights[i].getWeight(k,j));
    //add values
    sum = sum + multiply;
    count++;
    //check that all weighted neuron outputs have been completed
    if (count == layers[i].getNumberOfNeurons())
    //pass results to neuron
    layers[i+1].getNeuron(j).setNeuronInput(sum);
    //activate neuron
    layers[i+1].getNeuron(j).neuronActivation();
    //calculate output error of neuron for given input
    layers[i+1].getNeuron(j).calculateOutputError();
    //check that output layer has been reached and all neurons have been summed together
    if (i == getNumberOfLayers()-2 && count == layers[i].getNumberOfNeurons())
    outputError = layers[i+1].getNeuron(j).getOutputError();
    netError = layers[i+1].getNeuron(j).getNetError();
    for (int a=getNumberOfLayers()-1; a>0; a--)
    for (int b=0; b<layers[a-1].getNumberOfNeurons(); b++)
    for (int c=0; c<layers[a].getNumberOfNeurons(); c++)
    output1 = layers[a-1].getNeuron(b).getOutput();
    output2 = layers[a].getNeuron(c).getOutput();
    wcv = learningRate * (outputError) * output1 * output2 * (1-output2);
    weights[a-1].changeWeight(wcv, b, c);
    learningCycle++;
    if (setPosition < setSize-1)
    setPosition++;
    else
    setPosition=0;
    while (netError > acceptableError && learningCycle < 1000000000);
    return currentError;
    }At the moment the net doesn't seem to learn to an acceptable degree of accuracy, so I was looking to use threads to monitor it's error value change while I left it running just to ensure that it is working as intended (which it seems to be based on NetBeans debugger output). For the moment, all I'm aiming for is an output of the netError value of the NN at a particular time - would this be possible given my current implementation?
    Thanks for the help,
    Nick                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    For huge NN and a really multi-core CPU (reporting to OS as a multiple CPU's) one may benefit from having:
    - an example pump
    - a separate threads for calculation of forward and backwards propagation with in/out queues.
    Example pump pumps one forward example to each forward processing thread. It waits for them to complete. Then it reads their output and finds errors to backpropagate. It pumps errors to back-propagation threads. They finds weights correction but does not update weight matrix only are pushing them to the output temporary arrays. The example pump takes those corrections, combines them an updates weights.
    Redo from start.
    The rule of thumb for high-performance is - avoid locks. If must access data which are changing, make a copy of them in bulk operation, prepare bulk result and read-write in bulk operations.
    In this example a whole bunch of weight matrixes and states of neurons are such a kind of data. Each thread should use separate copy and the teaching pump should combine them together. This makes one to split data in two blocks - non-changing, common for all threads (the geometry of NN and weights) and changing, separate for each thread (weight correction, in/out of neurons).
    Avoid "new", "clone" and etc. for the preference of System.arraycopy on existing data.
    Regards,
    Tomasz Sztejka.

  • TS3274 Why can't I update iPad using iTunes?

    Why can't I update iPad using iTunes?

    Are you syncing photos from iPhoto on a Mac ? If you are then first see if there are any updates available for it . If there aren't then see if these threads help :
    https://discussions.apple.com/message/18403974#18403974
    https://discussions.apple.com/message/19675108#19675108

  • HT1657 i am trying to watch a movie using my appve TV, but i am asked to verify 'payment' info on itunes store. i have updated everything using the 'edit' button, it still isn't working and i am frustrated, 6465107522

    i am trying to watch a movie using my appve TV, but i am asked to verify 'payment' info on itunes store. i have updated everything using the 'edit' button, it still isn't working and i am frustrated, 6465107522

    perhaps this will help?
    h t t p://w w w.aone-soft.com/mobile_3gp_video_converter.htm
    or do a google search on  "mobile_3gp_video_converter"
    Message Edited by JSanders on 11-18-2008 09:43 AM
    1. If any post helps you please click the below the post(s) that helped you.
    2. Please resolve your thread by marking the post "Solution?" which solved it for you!
    3. Install free BlackBerry Protect today for backups of contacts and data.
    4. Guide to Unlocking your BlackBerry & Unlock Codes
    Join our BBM Channels (Beta)
    BlackBerry Support Forums Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

Maybe you are looking for