Ich habe eine Anforderung, wo ich auf die Datenbank zugreifen und diese Werte in einer Liste platzieren und dann diese Werte mit mehreren threads.currently Ich verwende 2 Threads und meine Ausgabe ist so, dass jeder Thread stellt separate Verbindung zu Datenbank und iteriert die gesamte Liste und daher in output bekomme ich jeden Wert zweimal.pl helfen bei der Lösung dieserJava Multithreading
Antwort
Warum nicht Verbindung Pooling stattdessen verwenden? http://sourceforge.net/projects/c3p0/
Alte alte teilen und erobern Technik. Unterteilen Sie Ihre Datenbank logisch in zwei Hälften (nehmen wir an, Sie müssen 100 Werte aus der DB lesen, dann lassen Sie jeden Thread 50 Werte lesen). Verknüpfen Sie die Daten zurück zu einer einzelnen Liste und drucken Sie dann diese einzelne Liste aus.
+1 für die tatsächliche Beantwortung der Frage. – Favonius
// dies ist mein Code
class Conn
{ Connection getDBConnection(String serverName,String url,String userid,String password) {
Connection conObj = null;
try {Class.forName("oracle.jdbc.OracleDriver");
conObj = DriverManager.getConnectionurl,userId,password);
return conObj;}
catch(Exception e){
}}}
class listObj extends Conn
{ List lst;
Connection con;
String query;
public List resultList() {
try{//connection code
query = "select * from test";
ResultSet rs = st.executeQuery(query);
lst=new ArrayList();
while(rs.next())
{lst.add(rs.getInt(1);}return lst;
} catch(Exception e)
{ }
}}
class Thread1 extends listObj implements Runnable
{ public void run()
{List ls=null;
try {ls=(ArrayList)resultList();
} catch (Exception e) {
e.printStackTrace();
}
ListIterator it= ls.listIterator();
while (it.hasNext()){
System.out.println(it.next());
} }}
class TestMain extends listObj {
p.s.v.m(String a[]) throws Exception {
Thread t1=new Thread(new Thread1());
Thread t2=new Thread(new Thread1());
t1.start();t2.start();}}
wählen Sie für die Aktualisierung in Kombination mit ersten Reihen n holen ist eine Option.
Wenn der erste Thread also n Zeilen liest, werden dieselben von den aufeinander folgenden Threads ignoriert.
- 1. Java Multithreading, Sockets
- 2. Java Multithreading in android
- 3. Java Multithreading Array Trennen
- 4. Datenverarbeitung mit Multithreading-Java
- 5. Multithreading-Berechnungen in Java
- 6. Java Multithreading-Fehler Handhabung
- 7. Java Multithreading Lernquellen
- 8. Java 8 Stream Multithreading
- 9. Selen Java Multithreading FirefoxDriver
- 10. Threads und Multithreading in Java
- 11. Verwenden von Multithreading in Java?
- 12. Multithreading Best Practices in Java
- 13. Java-Thread: Multithreading - Race-Bedingung
- 14. Unreasonable DeadLock in Multithreading erkannt Java
- 15. Java Aufruf Kind Klassenmethode in Multithreading
- 16. Unable Vokale zählen Java mit Multithreading
- 17. Frameworks für Unittests für Multithreading in Java
- 18. Kürzeste verbleibende Zeit zuerst: Java Multithreading
- 19. Benannte Pipes in Java und Multithreading
- 20. Java Multithreading: Variable von mehreren Threads ändert
- 21. Multithreading, parallele Bubble Sortierung
- 22. atomare Operationen und Multithreading
- 23. Ruby Multithreading/multiprocessing Lesungen
- 24. Tomcat Multithreading-Problem
- 25. Ehcache & MultiThreading
- 26. gdb: Multithreading
- 27. Multithreading Semaphore
- 28. Nutch Multithreading
- 29. Multithreading Beratung
- 30. C# Multithreading
Werden Sie bitte einen Code mit diesem? –
Wir haben keine Ahnung, was Ihr Problem ist. Warum sollten Sie die Werte nicht zweimal drucken? – Falmarri