Halen çalışmakta olduğum bir vakıf var ve bu yüzden her zaman işleri gerçekleştirmenin daha iyi yollarının farkında olmaya çalışıyorum. Son zamanlarda programın ana iş parçacığı, bazı işlemleri gerçekleştirecek ve daha sonra bittiğini söylemek için kaydı güncelleştirmek için "görev" konuları (her bir db "görev" kaydı için) üreteceği iş için bir program yazmak zorunda kaldım. Bu nedenle, ThreadedTask nesnelerine veya içinde bulunan bir veritabanı bağlantı nesnesine ve PreparedStatement nesnelerine ihtiyacım vardı.Java'da bir Thread'deki PreparedStatements'ın bu kullanımı doğru mu?
Bu, yazım bittiğimde kabaca her atık için PreparedStatement
nesnesi oluşturuyor? Ben
Konuyu güvenli mi ..
Thread A stmt.setInt(); Thread B stmt.setInt(); Thread A stmt.execute(); Thread B stmt.execute();
A's versiyonu execed geçmez ... yarış koşulları yaratabilecek PreparedStatments
statik düşünce? Her zaman aynı büyük bir atık değil PreparedStatement
nesneleri oluşturma ve yok eder mi?
public class ThreadedTask implements runnable {
private final PreparedStatement taskCompleteStmt;
public ThreadedTask() {
//...
taskCompleteStmt = Main.db.prepareStatement(...);
}
public run() {
//...
taskCompleteStmt.executeUpdate();
}
}
public class Main {
public static final db = DriverManager.getConnection(...);
}
Bağlantıyı saklamayın, Bağlantınızı gerektiğinde alın. Eğer bettr performansına ihtiyacınız varsa, bir bağlantı havuzu kullanın. AS Thilo, aşağıda, Konular arasında hiçbir şey paylaşmıyor. –