Új hozzászólás Aktív témák
-
thon73
tag
Aha! Köszönöm. 1. pont alapján a kódot javítottam.
2. Eddig multithreadet (a rendszer által kínált lehetőségeken kívül) csak időzítési feladatokra használtam. Viszont - a log szigorításával - szükségem lett volna egy "saját" log-ra, amit akkor is használhatok, ha tableten dolgozom. A program nagyon egyszerű, egy file-ba írja az üzeneteket. ((Az esetleges összeomlás miatt a metódus nyitja-írja-zárja a file-t (flush is lehetne helyette, de az idő nem volt lényeges szempont)). Ilyen üzenet bármelyik thread-ről érkezhet, ezért szeretnénk biztos lenni abban, hogy működik.
Két megoldást találtam a figyelmeztetésed után:
private final Object lock = new Object();
private static String addTextToFileLog( File logFile, String text )
{
synchronized( lock )
{
OutputStreamWriter logStream = new OutputStreamWriter( new FileOutputStream(logFile, true));
logStream.append( text );
logStream.flush();
logStream.close();
}
}illetve:
private static synchronized String addTextToFileLog( File logFile, String text )
{
OutputStreamWriter logStream = new OutputStreamWriter( new FileOutputStream(logFile, true) );
logStream.append( text );
logStream.flush();
logStream.close();
}(A hibaellenőrzést az egyszerűség kedvéért töröltem.)
Van előnye egyik vagy másik megközelítésnek? Egyáltalán jó ez így, vagy valamit elnéztem?
Ha még abban tudnék egy kis segítséget kapni, hogy ezt hogyan tesztelhetem a szimpla próbálkozáson kívül, azt is megköszönném!
Új hozzászólás Aktív témák
- Háztartási gépek
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Kerékpárosok, bringások ide!
- Plazma TV topic
- CADA, Polymobil, és más építőkockák
- A fociról könnyedén, egy baráti társaságban
- Interactive Brokers társalgó
- A Föld teraformálásával építene galaktikus birodalmat Elon Musk
- Autós topik
- Linux kezdőknek
- További aktív témák...
- Lenovo ThinkCentre M725s Ryzen 5 Pro 2400G / 8GB DDR4 / 256 GB SSD + Lenovo LT1952p 192 monitor
- Samsung Galaxy S23 Ultra 5G Dual Sim 256GB Mint az ÚJ! (Gyári garanciával, Patika állapot)
- Playstation 5 lemezes 825GB CFI-1216A, újra fém pasztázva, 6 hónap garanciával, Bp-i üzletből eladó!
- Xbox Series X, kitisztítva+újrapasztázva, 6 hó teljeskörű gar., Bp-i üzletből eladó!
- 2n voiceblue next GSM VoIP router
- Eladó új állapotban levő Redmi Note 11 4/64GB szürke / 12 hónap jótállás
- GeForce RTX 2060 (OEM HP) Garanciával
- Dell Latitude 5520,15.6",FHD, i5-1145G7,16GB DDR4,256GB,WIN11
- Hp 830 G8 Core i7 1185U 16Gb Ram Intel Iris FullHD IPS Boltból számlával Garanciával
- GAMER PC! i7-9700 / RTX 3070 8GB COC / Z390 / 16GB DDR4 / SSD 512GB / BeszámítOK
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
