Fill a singleton once and access data from all threads in java
I am on my cell phone now, so I have no code here. But it's simple.
I have one static class working as a singleton in a web app.
That class is called on the start of the application (when I use to fill my singleton passing a parameter after a database call). The problem is, that when I call that class again from a different static class (on a different thread), my data is not there. But if I use the same class which I used to fill, the data is there. What can I do to access my singleton from all classes/threads and get the data?
UPDATE
Hey guys, i solved it. The problem was that my system had two separated packages (linked by a rest service). My singleton was called by that two packages so i got different threads. The solution was create a method and get my singleton by the same package.
java multithreading singleton memory-visibility
add a comment |
I am on my cell phone now, so I have no code here. But it's simple.
I have one static class working as a singleton in a web app.
That class is called on the start of the application (when I use to fill my singleton passing a parameter after a database call). The problem is, that when I call that class again from a different static class (on a different thread), my data is not there. But if I use the same class which I used to fill, the data is there. What can I do to access my singleton from all classes/threads and get the data?
UPDATE
Hey guys, i solved it. The problem was that my system had two separated packages (linked by a rest service). My singleton was called by that two packages so i got different threads. The solution was create a method and get my singleton by the same package.
java multithreading singleton memory-visibility
2
Without code it is difficult to guess but this sound like you either need to use the volatile modifier or use Atomics.
– OldCurmudgeon
Nov 23 '18 at 14:44
1
Thanks buddy, I will take a look and update the code since I get home
– Caio Rodrigo
Nov 23 '18 at 14:47
It doesn't look like you have created a singleton. Please upload the code.
– uneq95
Nov 24 '18 at 23:27
add a comment |
I am on my cell phone now, so I have no code here. But it's simple.
I have one static class working as a singleton in a web app.
That class is called on the start of the application (when I use to fill my singleton passing a parameter after a database call). The problem is, that when I call that class again from a different static class (on a different thread), my data is not there. But if I use the same class which I used to fill, the data is there. What can I do to access my singleton from all classes/threads and get the data?
UPDATE
Hey guys, i solved it. The problem was that my system had two separated packages (linked by a rest service). My singleton was called by that two packages so i got different threads. The solution was create a method and get my singleton by the same package.
java multithreading singleton memory-visibility
I am on my cell phone now, so I have no code here. But it's simple.
I have one static class working as a singleton in a web app.
That class is called on the start of the application (when I use to fill my singleton passing a parameter after a database call). The problem is, that when I call that class again from a different static class (on a different thread), my data is not there. But if I use the same class which I used to fill, the data is there. What can I do to access my singleton from all classes/threads and get the data?
UPDATE
Hey guys, i solved it. The problem was that my system had two separated packages (linked by a rest service). My singleton was called by that two packages so i got different threads. The solution was create a method and get my singleton by the same package.
java multithreading singleton memory-visibility
java multithreading singleton memory-visibility
edited Nov 26 '18 at 14:22
Caio Rodrigo
asked Nov 23 '18 at 14:30
Caio RodrigoCaio Rodrigo
12
12
2
Without code it is difficult to guess but this sound like you either need to use the volatile modifier or use Atomics.
– OldCurmudgeon
Nov 23 '18 at 14:44
1
Thanks buddy, I will take a look and update the code since I get home
– Caio Rodrigo
Nov 23 '18 at 14:47
It doesn't look like you have created a singleton. Please upload the code.
– uneq95
Nov 24 '18 at 23:27
add a comment |
2
Without code it is difficult to guess but this sound like you either need to use the volatile modifier or use Atomics.
– OldCurmudgeon
Nov 23 '18 at 14:44
1
Thanks buddy, I will take a look and update the code since I get home
– Caio Rodrigo
Nov 23 '18 at 14:47
It doesn't look like you have created a singleton. Please upload the code.
– uneq95
Nov 24 '18 at 23:27
2
2
Without code it is difficult to guess but this sound like you either need to use the volatile modifier or use Atomics.
– OldCurmudgeon
Nov 23 '18 at 14:44
Without code it is difficult to guess but this sound like you either need to use the volatile modifier or use Atomics.
– OldCurmudgeon
Nov 23 '18 at 14:44
1
1
Thanks buddy, I will take a look and update the code since I get home
– Caio Rodrigo
Nov 23 '18 at 14:47
Thanks buddy, I will take a look and update the code since I get home
– Caio Rodrigo
Nov 23 '18 at 14:47
It doesn't look like you have created a singleton. Please upload the code.
– uneq95
Nov 24 '18 at 23:27
It doesn't look like you have created a singleton. Please upload the code.
– uneq95
Nov 24 '18 at 23:27
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53448537%2ffill-a-singleton-once-and-access-data-from-all-threads-in-java%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53448537%2ffill-a-singleton-once-and-access-data-from-all-threads-in-java%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Without code it is difficult to guess but this sound like you either need to use the volatile modifier or use Atomics.
– OldCurmudgeon
Nov 23 '18 at 14:44
1
Thanks buddy, I will take a look and update the code since I get home
– Caio Rodrigo
Nov 23 '18 at 14:47
It doesn't look like you have created a singleton. Please upload the code.
– uneq95
Nov 24 '18 at 23:27