Hirdetés
- Apple MacBook
- AMD Navi Radeon™ RX 9xxx sorozat
- TCL LCD és LED TV-k
- OLED monitor topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- KODI (ex-XBMC) Android alapokon, Androidos media-boxok
- Milyen egeret válasszak?
- Ilyen olcsó sem volt még egy Apple notebook
- Az olcsó Macbook sokkolja a PC-ipart az ASUS társvezetője szerint
Új hozzászólás Aktív témák
-
pakriksz
őstag
Sikerült, furán viselkedik. Ugyan az a program ugyanazokkal a teszfájlokkal ugyanannyi beállított threaddel teljesen randomban 3 féle dolgot művel:
-töltöget majd úgy néz ki mint egy végtelen ciklus 1 mag használatával
-működik de 1 magon
-több magon működik ahogy kellVolt már ilyen kiszámíthatatlan működés hasonlóképpen, de néhány indítás után normális lett. Hát most nem lett.
Ami mégfurább, hogy ha egyszerre kevesebb fájlt nyitok meg (300+ helyett mondjuk 100-at) akkor mindig megfelelően működik.
Elfogyott a memória talán? -
pakriksz
őstag
megvan, while awaittermination és a ciklusba egy sleep. Már "csak" meghívni a metódusokat kéne több szálon.
-
pakriksz
őstag
válasz
pakriksz
#2447
üzenetére
Az első mondat hülyeség, csak már felment a pumpa. De a lényeg még mindig az hogy a metódushívás nem megoldott.
Viszont Executeservice működik létrehozáskor, a probléma az, hogy ugye végigmegy a for cikluson, de még futnak a threadek, a for ciklus után meg jön a gui frissítés az adatokkal, csak hogy sehogy sem tudom ezt váratni amíg készvannak a threadek.
Megváratni viszont sehogy sem tudom. Ha berakok egy waitet akkor "IllegalMonitorStateException", ha not isTerminated vagy isShutdown-t rakok a while ba azok soha nem jelzik hogy kész van... -
-
pakriksz
őstag
válasz
Lortech
#2444
üzenetére
és ha nincs vége a konstruktornak akkor nem indítja a többi threadet? Ez nagyon gáz. akkor ahogy látom képtelenség így létrehozáskor exceptiont dobni, ugyanis a run() "nem támogatja". Konstruktor igen
Amúgy konstruktorból átrakva a dolgokat, sikerült több magot használtatni vele. De aztán hogyan?Grafikus felületen egy listában tárolja a fenti osztály példányait, majd for ciklussal megy végig rajtuk és hívogatja meg a metódusait a user eventjeikor, viszont ugye a for megvárja az eredményt, így 1 szál fog futni egyszerre. Ilyenkor mi van?
(valami szálmenyiség maximalizálást is kéne csinálni, mert fájlokból olvas ír, és hát a vinyóknál nem valami hatékony hogy 300 szál olvasgat írogat 300 fájlt, na meg a cpu-nak is értelmetlen ennyi.)
-
pakriksz
őstag
válasz
Lortech
#2441
üzenetére
ja úgy néz ki csak 1 thread fut.
Csináltam ezért egy tesztosztályt.
public class Tred extends Thread {
private double tőtjük=0;
public Tred() {
super();
while (true) {
tőtjük=tőtjük+Math.round(Math.random()*(Math.random()*10));
//System.out.println(totjuk);
}
}
@Override
public void run() {
super.run();
}
}
És így indítom:
public static void main(String[] args) {
new Tred().start();
new Tred().start();
new Tred().start();
new Tred().start();
}gyönyörűen beáll 1 magra... mivel 25%-os terhelés a 4 magon.
Pedig úgy indítom ahogy mindenhol írjáák és itt aztán még synchronized változó sincs. -
pakriksz
őstag
Azt nem tudja valaki, hogy sok egymástól független threadből indított külső programból miért nem indít annyit a java ahány threadből meghívódik? Mert csak 1x hívja meg, és így ezen a részen elveszik a többszálúság.
-
pakriksz
őstag
Ez azért nagyon kemény:
sír hogy az objectként beolvasott objektum (lista) listára castolása ellenőrizetlen. De ha berakok egy instanceof-ot, oda meg nem lehet generikust írni, tehát ugyanúgy ellenőrizetlen lesz
-
pakriksz
őstag
válasz
Lortech
#2435
üzenetére
nem volt, de közben rájöttem. Mindegy ez amit így objektumként ment nem valami szép xml, és azért jó lenne ha embernek is jobban olvasható lenne, úgyhogy saját xml mentést írok, csak van vele egy gond.
DOM-ot használok, be van állítva a transformernél az indent is, mégsem formázza szépre az xml-t, miközben ugyanebben a programban egy másik xml-t igen, ugyan ezekkel a beállításokkal. -
pakriksz
őstag
XML-be írnék objektumokat.
De Ha egy feltöltött listát írok ki, gyakorlatilag létrehoz egy arraylist node-ot az xml-be ami tök üres, pedig a listben vannak objektumok.Ha forral akarom kiiratni a listben lévő objektumokat, akkor meg egy ilyen rendkívül informatív hibaüzenetet kapok:
java.lang.InstantiationException: Replaceable
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement XMLEncoder.writeObject(Replaceable);A replaceable objektum már implements Serializable, de úgy is ugyanez.
-
pakriksz
őstag
Egy olyan problémába ütköztem, hogy egy külső exét hív meg a programom Runtime.getRuntime().exec("serz.exe "+path); ami egy fájlt konvertál. A gond az, hogy erről a sorról tovább lép a programom mielőtt kész lenne a hívott program, így konvertált fájlt vagy nem találja, vagy félkészen nyitja meg. Mit lehet tenni?
-
pakriksz
őstag
Hogyan lehet egy nagyobb libből kiszedni a szükséges dolgokat (vagy akár összeset mert gondolom a proguard ki tudja szedni a felesleget) hogy működjön is? Úgy megy hogy external jarként hozzáadom majd eclipse-vel úgy exportálom hogy berakja a jar-ba a lib jarokat is (de jarként teszi bele). Ha azt mondom hogy csomagolja ki a libet és úgy tegye bele a jarba, úgy megy, de így még nagyobb lesz az egész jar, proguard meg állandóan elszáll a végén, hogy "Warning: org.jdesktop.swingx.auth.KeyChain: can't find referenced class...".
Hogy lehet csökkenteni a libek méretét? -
pakriksz
őstag
válasz
Lortech
#2411
üzenetére
Aha igen így tényleg megy. És így a noduplicatelisttel is ugyanúgy "thread safe" lesz?
Más: az xml-t egy serz (ami a serialize rövidítése szinte biztos) nevű programmal tudom konvertálni oda és vissza, egy bin kiterjesztésű fájlból. A bin-be konvertált xml-ek úgy néznek ki, hogy kb tizedakkora a méretük, néhány xml szöveget ki lehet venni belőle, de nagy része olyan bináris kódos mindenféle jel. És jó lenne ha nem kéne ez a serz program a konvertálásra, viszont zárt forráskódú. Rákerestem arra java-ban binarize, amire csak annyi jött ki hogy lehet javaban bináris adatot menteni sima xml-be. Serialize-re rákeresve pedig objektumok xml-be mentése jött ki. Egyik sem éppen az ami kéne.
Ez a dolog lenne az
De nem tudom javaban honnan indulhatnék el, ez a serz program egyébként c# nyelven íródott. -
pakriksz
őstag
Hát ez nagyon furcsa. A programomat elindítom a jar-ra duplaklikkelve win7 alatt, de nem csinálja a dolgát. Egy 50 megás xml-t kéne betöltenie, de nem listázza ki, semmi hibaüzenet, és jó sokáig terheli a cpu-t.
Eclipse-ből indítva jóval rövidebb ideig terhel, és úgy működik ahogy kell. A vicc az hogy paranccsorból java -jar al futtatva szintén rendesen működik.
Ha duplaklikkel indítom és nem működik rendesen akkor a folyamatoknál egy 32 bites javaw.exe-ben fut. Ha eclipse-ből, akkor 64bites javaw-ban, java -jar nál pedig 64 bites java.exe-ben. -
pakriksz
őstag
válasz
skoda12
#2407
üzenetére
Pedig nem működik, azt mondja nem lehet Listt-é alakítani. Viszont máshogy megoldottam a dolgot, úgy hogy a noduplicatelistben minden használt metódust synchronized-ként overrideoltam. Set-list konvertálgatás pedig azért gáz mert futás közben jópárszor végig kéne járnia ezt az utat, merthogy szerkeszteni is lehet a dolgokat nem csak kilistázni.
A JTable-hez meg csináltam egy saját tablemodelt, amivel már rendesen megy.
De van nála egy kis kinézeti bibi. Nem találok olyan beállítást hogy a cellákat az abban az oszlopban lévő leghosszabb szövegre méretezze, mert bár futás közben lehet egérrel átméretezni de jó lenne ha minden látszana. Az auto resize beállításoknál nincs ilyen azokat végigpróbáltam. A jtable metódusainál van 2 aminek a nevéből ítélve az lenne célja, de az egyik deprecated a másik meg már elvileg java 1.4 óta nincs benne. Az állítólagos alternatíva doLayout meg semmit sem csinál. -
pakriksz
őstag
Csináltam egy ilyet public class NoDuplicateList<E> extends ArrayList<E>
Azért nem set-et használok új osztály helyett mert kell a get metódus is és az is hogy a listában minden csak egyszer szerepel. Na de most A Collections.synchronizedList() ezen nem működik, már pedig több szál fog hozzáférni ehhez a listához.
Mit lehet tenni?
Ja a másik csavar benne, hogy ez azért kell, mert egy több szálú program állítja össze a listát (igazából bármi lehet csak 1 adat(ez az adat egy 6 stringből álló objektum csak 1x szerepeljen benne), majd ezt egy Jtable-ben kéne megjeleníteni(amihez szintén kell 3 metódust implementálni). -
pakriksz
őstag
Megoldottam, végigkeresi az üres string attribútumos(mert van ilyen az xml-ben, így szerencsére nem kell az összes tagen végigmenni, mert csak ezeknél fordulhat elő üres tag) tageket, és beilleszt egy space-t. Így külön zárja le. Azt olvastam az xml-nél az a szabvány ha nincs semmi a tagek között akkor <Tagnév/> a szabályos, de azért jó lenne ha a DOM-ban be lehetne állítani hogy formázgathatja-e vagy sem.
-
pakriksz
őstag
Ha segít, ilyen az xml-be mentési metódus.
private void toXML() throws Exception
{
TransformerFactory xf = TransformerFactory.newInstance();
xf.setAttribute("indent-number", new Integer(2));
Transformer xformer = xf.newTransformer();
xformer.setOutputProperty(OutputKeys.METHOD, "xml");
xformer.setOutputProperty(OutputKeys.INDENT, "yes");
xformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
FileOutputStream fos= new FileOutputStream("teszt.xml");
Result out = new StreamResult(new OutputStreamWriter(fos,
"UTF-8"));
xformer.transform(new DOMSource(doc), out);
fos.close();
} -
pakriksz
őstag
Hogy lehet úgy kiírni fájlba a módosított xml-t hogy azokon a nodeokon kívül amit én a programban módosítok semmi mást sem változtat?
Mert pl felcserél attribútumokat, berak olyat ami előtte nem volt, stb.
pl ilyet is:
eredeti <BlueprintID d:type="cDeltaString"></BlueprintID>
úk <BlueprintID d:type="cDeltaString"/> -
pakriksz
őstag
válasz
ArchElf
#2398
üzenetére
Aha köszi, bár nem pontosan így értettem, de majdnem, és így látva egy példát már kezdek rájönni hogy működik ez, és persze a programban is működik. Még annyit hozzátennék, hogy stringnél az xpath querybe "" között szóval kell pár \" is. Ezért egyébként nem szól, viszont ha nincs ""-ben akkor nem fog soha sem eredményt adni.
-
pakriksz
őstag
válasz
ArchElf
#2395
üzenetére
jó ezt tudom, de egy lekérdezésbe ezt hogy?
Na meg azt is valahogy meg kellene oldani utána, hogy van egy provider product, és blueprintid trió és ezekre textjére együtt rákeresni, úgy hogy csak azt dobja ki ahol ez a 3 dolog pontosan egyezik a keresettel, ahol a 3 ból egyik nem egyezik ott már nem.
-
pakriksz
őstag
Hello, javas xpath segítség kellene nekem.
Egy ilyen felépítésű xml-ből bármilyen mélységben (<BlueprintID> fölötti rangú dolog is van, ez csak egy kis részlet) kéne az "EZ", "MEGEZ", "ÉSEZ" nevezetű szövegeket tartalmazó nodeok, tehát a provider, product, és blueprintID, úgy hogy a felső blueprintID lehet más nevű tag is de eszerint lehet keresni az xml-ben, de az alatta lévő tehát <iBlueprintLibrary-cAbsoluteBlueprintID>-től kezdődő dolgok mindig fixek.
<BlueprintID>
<iBlueprintLibrary-cAbsoluteBlueprintID>
<BlueprintSetID>
<iBlueprintLibrary-cBlueprintSetID>
<Provider d:type="cDeltaString">EZ</Provider>
<Product d:type="cDeltaString">MEGEZ</Product>
</iBlueprintLibrary-cBlueprintSetID>
</BlueprintSetID>
<BlueprintID d:type="cDeltaString">ÉSEZ</BlueprintID>
</iBlueprintLibrary-cAbsoluteBlueprintID>
</BlueprintID>például mitkeres="BlueprintID"
most úgy megy hogy XPATH.compile("//"+mitkeres+"/iBlueprintLibrary-cAbsoluteBlueprintID/..");Azért keres az iBlueprintLibrary-cAbsoluteBlueprintID-ig majd annak szülőjét adja vissza mert mint látható 2 ugyanolyan nevű tag-van másra használva, és így van meg biztosan a külső.
Majd ezután egy saját metódus lépked bele a childokba addig amíg a 3 keresett taget meg nem találja. De talán ezt meg lehetne csinálni ezek nélkül is 1 db xpath lekérdezéssel, de az xpath leírások eléggé összecsapottak, nem tudom hogy kéne kinéznie egy ilyen lekérdezésnek. Valaki tud valami tippet erre?
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Apple MacBook
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Kész rémálom lesz Linuxot használni jövőre az USA egyes államaiban
- sziku69: Fűzzük össze a szavakat :)
- AMD Navi Radeon™ RX 9xxx sorozat
- Okosóra és okoskiegészítő topik
- TCL LCD és LED TV-k
- Eredeti játékok OFF topik
- Iqos cigaretta
- Xiaomi 17 Ultra - jó az optikája
- További aktív témák...
- LG 32GS94UX - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- AKCIÓ! MSI Thin A15 B7VE FHD Gamer notebook - R5 7535HS 16GB DDR5 512GB SSD RTX 4050 6GB W11
- ÚJ MSI Katana 15 HX - 15.6" QHD 165Hz - i7-14650HX - 16GB - 1TB - RTX 5060 - Win11 - 3 év gari - HUN
- Xiaomi Redmi Note 14 6/128GB fekete / 2028.01.12 - ig jótállás
- Samsung Galaxy A33 5G / 6/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


