Diskuze: Prosím o radu.
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


odpověď
Ano dá se to realizovat a je to dost časté využití multithreadingu. Každá
instance bude obsahovat své vlastní vlákno, které bude vykonávat časovač.
Ten si můžeš klidně v každé instanci nastavit dejme tomu na nějaký
základ (třeba 1000 milisekund) + random integer (třeba random od 0 - 1000
dalších milisekund) a máš v každé instanci jiný delay. No a vůbec
nepotřebuješ nějakou globální časomíru - jen zesynchronizuješ ta vlákna
a půjdou ti hezky postupně. V nějakém for-each cyklu budeš tahat ty
instance z nějaké kolekce a u každé spustíš metodu start()
poznámka
ale místo věty:
Po sem snadné.
bys mohl postnout své řešení, které se jen doplní o stávající
problém. Jako sorry, ale uznej sám, že nemůžeme plnit domácí úkoly
všech škol od A do Z. Tu a tam se najde aktivista, ale takový způsob je na
po čuni - ukaž snahu a máš tu tucet zájemců o pomoc;)
Hoď sem co máš a dokončíme to nějak;)
hmm tak zkusím teda zaimprovizovat -> myslels něco takovéhoto?
import java.util.ArrayList;
import java.util.Random;
public class InstancesCreator {
//###################-ATRIBUTES-##################
//=========CONSTANT ATRIBUTES CLASSES==========
//=========VARIABLES ATRIBUTES CLASSES=========
//=========CONSTANT ATRIBUTES INSTANCE=========
private final ArrayList<Instance> collectionContainedInstances = new ArrayList<>();
private final Random rnd = new Random();
//========VARIABLES ATRIBUTES INSTANCE=========
private Instance instance;
//####################-STATIC-####################
//=============STATIC CONSTRUKTOR==============
//============STATIC ACCES METHODS=============
//===============STATIC METHODS================
//=================MAIN METHOD=================
public static void main(String[] args) {
new InstancesCreator();
}
//###################-INSTANCE-###################
//=================CONSTRUCTOR=================
public InstancesCreator() {
createInstances(1000000);
startIt();
}
//================ACCES METHODS================
//===================METHODS====================
public void createInstances(int countOfInstances) {
int i = 0;
while (i < countOfInstances) {
instance = new Instance();
instance.setName(String.valueOf(i));
collectionContainedInstances.add(instance);
i++;
}
}
public void startIt() {
collectionContainedInstances.stream().forEach((i) -> {
i.start();
i.join();
});
}
//###############-PRIVATE METHODS-################
//=====PRIVATE STATIC AND SUPPORT METHODS======
//=========PRIVATE AND SUPPORT METHODS=========
//#############-PRIVATE CONSTRUCORS-##############
//===============PRIVATE CLASSES===============
private class Instance implements Runnable {
private String name;
private Thread thread;
private int delayTime = 5;
@Override
public void run() {
try {
delayTime += rnd.nextInt(5);
System.out.println(String.format("############# Instance %s #############\nstarted!", getName()));
Thread.sleep(delayTime);
System.out.println(String.format("finished after %s time delay\n", delayTime));
} catch (InterruptedException exp) {
}
}
public void start() {
if (thread == null || !thread.isAlive()) {
thread = new Thread(this);
thread.start();
}
}
public void setName(String instancesName) {
name = instancesName;
}
public String getName() {
return name;
}
public void join() {
try {
thread.join();
} catch (InterruptedException ex) {
}
}
}
//===============TESTING METHODS===============
}
Počítej ale s tím, že když tam dáš jako já aspoň těch 5 milisekund delay u každého, tak ti to bude trvat cca 1 a půl hodiny, než to může nejdřív zkončit;)
Zobrazeno 3 zpráv z 3.