How to assigne Java thread to a specific cpu core
Hello everyone,
I want to ask a complicated question. How can I assign Java threads to specific core in a multi-threaded application. The underlyinsg OS can be Linux or Windows. Is there any option provided in JVM can do it?
If I want to fork a process using C, how can I mix the Java and C together.
I am looking forward your suggestions.
Thank you.
yang2007 wrote:
Can I fork several Java processes using C and letting each Java process run on a core? These would be questions for a C forum, or one for the OS on which you wish to run this.
The benefit may be to reduce the interference.You're assuming that you are smarter at thread scheduling than the algorithms written, tested, and honed over decades by people whose job is specifically that.
Similar Messages
-
Very frustrated with new layout of discussion forums...
How do I search key words within threads within a specific support community?
For Example I want to search the phrase 'couldn't collect' within the Apple Remote Desktop community.Thanks for your response. I'm well aware of the global search field.
My problem with that is if I search the term 'couldn't collect', (in reference to a very specific Error message generated while running a report via Apple Remote Desktop Task Server) I get a slew of useless hits that have either the words 'couldn't' and/or 'collect' or any variation of those words, such as 'collection'.
I'm looking for responses that are very specific to Apple Remote Desktop only. I don't have hours to weed through thousands of responses that have no bearing to that at all.
Searching within specific sub-communities was possible before this new layout. Whatever happened to the booelean searches and searching by phrases and the 'advanced' searches? Do they still exist? -
How to use Java threads in ColdFusion
Hello Everybody,
I have a question in concerns to threads. We all know that in
CF8 we have this fantastic tag called <cfthread> which give
us the ability to create assyncronous code, however, I was
concerned about earlier versions of ColdFusion, like CF7 and CF
6.1.
How can I create a Java thread and use it in my CF code?
Please, any help is much appreciated. Thanks in advance.
Alvaro Costa
Systems Analyst
[email protected]A bean is obtain by <jsp:useBean> tag nd once bean is obtained we can get its property by using getProperty tag.
-
Forcing processes / JVM to run on specific CPU / Cores seamlessly
I'm running 4 different performance sensitive applications on a 2 CPU / quad-core 3GHz HP with solaris x86.
3 applications are java, 1 is C.
I'd like to force each of them to run on a specific (and different each time) CPU or core.
I've read about prstat / prset / pbind, however I find it quite inconvenient to use.
I'd like to add something to my start scripts so that they seamlessly always start on a different cpu / core...
any idea / link ?
thanksPlease describe the problem in as much relevant detail as possible. The "etrecheck" fad hasn't made that step any less necessary. The better your description, the better the chance of a solution.
For example, if the computer is slow, which specific actions are slow? Is it slow all the time, or only sometimes? When did it start to be slow? Did you change anything just before it started? Have you seen any alerts or error messages? Have you done anything to try to fix it? Most importantly, do you have a current backup of all data? If the answer to the last question is "no," back up now. Ask if you need guidance. Do nothing else until you have a backup. -
How to assign java script variable to a hidden parameter in JSP?
Hi All,
I want to assign the variable in the Jscript to a hidden parameter in JSP page.
<select name="sortingOption" class="sortingOptions" onchange="changeSortOption(this)">
<c:forEach var="sortingOption" items="${sortingOptionList}">
<c:set var="sortingOptionValue" value="${sortingOption}" target="java.lang.String"/>
<c:choose>
<c:when test="${sortingOptionValue == sortingOptionValueFromRequest}">
<option value="${sortingOptionValue}" selected="selected">${sortingOptionValue}</option>
<input type="hidden" name="srchType" value="none"/>
</c:when>
<c:otherwise>
<option value="${sortingOptionValue}">${sortingOptionValue}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
In changeSortOption script,they capture the value selected by the user and then they submit the form.I want to assign that value to a hidden parameter in JSP,can someone tell me how to do that?
I dont have the Jscript code with me right now to post here.To the point: just by accessing/manipulating the HTML DOM using JS. Learn JS and HTML DOM. There are basic tutorials at w3schools.com. Besides, your code syntax is still invalid. The input hidden elemend doesn't belong in a select element. Learn HTML. There's a basic tutorial at w3schools.com as well.
For future HTML/JS problems please consult the appropriate forums. This has not much to do with JSP. There are ones at webdeveloper.com. -
How to assign new fields to a specific role ( e.g employee) in BP
Dear Experts,
I have enhanced 3 customer fields in BP using EEWB, I am able to see this fields in BP ( tab customer data) but these fields are existing in all the roles of BP ( like vendor, bidder, service provider, employee etc).I would like to specify this fields only to a certain role (e.g employee) not to all roles.
How can I acheive it?.
Looking forward for your suggestions.
Many thanks and best regards,
AfrozSolved
-
How to assign the events in a specific method in class builder(se24)
i have declared one event in event part.i want to asign the event to one method .can any one help me .i have to do it in se24.pls
hi,
create a class in se24.
<b>click the <b>EVENTS</b> tab, define an event.</b>
<b>click the <b>METHODS</b> tab, define a method to trigger/ raise the event</b>
<b>define one more method as an event handler method for the event.</b>
for a method to be an event handler, click on the detail view,
select the check box <b>Event Handler for</b> give the classname where the event is defined and the event name, click on Change button.
<b>event can be in the same class or different from that of the event handler method.</b>
don't forget to <b>register the event handler method in the program.</b>
click the code button of ur trigger method(meth2 in my example) and write there,
raise event evt1.
now your class is ready.
now in se38 program,
declare a reference variable to ur class,
create an object,set the handler for ur event,
call the trigger method
<b>data:oref type ref to zsowcl1.
create object oref.
set handler oref->meth1 for oref. handler method
call method oref->meth2. raise evnt method</b>
hope it gives you clear idea,
Regards,
Message was edited by:
sowjanya s -
How to run two thread parallel y on two cores of dual-core ??
I want to run two threads on two cores ???
is there any package which support parallel computing??
can we do this by using java.util.concurrency pakage??
Thanks you
please Reply.....vikram_p wrote:
I want to run two threads on two cores ???ok
Threads are automatically spread over the available cores, as the OS sees fit.
is there any package which support parallel computing??Java does so without any external libraries.
can we do this by using java.util.concurrency pakage??yes
One question mark per question is plenty, thank you. -
Can Acrobat 9 Multi-Thread (use all my cpu cores)
i have several 700+ page thick PDF documents i want to run OCR on. i can batch run them just fine, however i cannot get adobe to use more than one core of my 8 core iMac. so the process takes needlessly long because 87% of my CPU power is just sitting idle. i also cannot do anything with adobe while it is running its OCR program.
is there a way to force acrobat to be multi-threaded?
is there a way to use it for other things while its working?Nope, no version of Acrobat is a multithreaded application. See the first bullet point: http://livedocs.adobe.com/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/DevFAQ_Introduction.21.16.ht ml
-
How to assign WSNavigatorRole to Users
Hi,
By default the role WSNavigatorRole is assigned to the group "Administrators". But our requirement is to assign this role to few individual users along with the administrators of the system. For this we tried to configure the Portal settings for the WSNavigatorRole in Visual Admin tool.
While doing so, we found that we can only provide the WSNavigatorRole to any one of the Pre-defined Security Roles and their associated groups and cannot assign specifi users for this role.
Can anyone please tell me how to assign the WSNavigatorRole to few specific users in Portal ?
Regards,
Anirban KunduGet the 'roleOccupant'or 'uniqueMember' etc. attribute of the group, via its DN. Add the member DN to the attribute. Replace the attribute in the group.e
-
Assigning java script array to java array..
hi,
can anyone tell me how to assign java script array to a java array which is bean.var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "bla..bla");
input.setAttribute("value", "bla..bla");And in addition to that.. Google is still alive -
How can I get the memory allocation info of a java thread?
Now I am going to write a program to monitor the execution condition of the java threads. But it seems that the classes in standard edition of JDK does not provide facilities to get the information such as the memory allocation and CPU time of a running thread. How can I do with it? Can I use JNI or JVMDI to get them? If it could do, how?
Thanks a lot. I just browsed the specification of jvmpi. It is interesting and it seems that I can get the information I need. However, if I want to get the information in my program, I mean, if I want to build a class which may use JNI method to invoke the function written with JVMPI, and then forward the data to other upper layer objects, can it be done?
-
How to assign project specific task with the newly created projects ?
Hi All,
I need help. I need to assign project specific tasks (which i will be taking from staging table) other than the default task which are assigned during project creation. How do I proceed with this within same package. I am attaching the code of my package below...
CREATE OR REPLACE PACKAGE body xxpa_proj_conv_pkg as
PROCEDURE xxpa_create_project_proc(O_ERRBUF OUT VARCHAR2,O_RETCODE OUT VARCHAR2)
is
variables need to derive global parameters
v_responsibility_id NUMBER; --- PA Supervisor responsibility id
v_user_id NUMBER;
deriving global parameters-
-- Variables needed for API standard parameters
v_api_version_number NUMBER := 1.0;
v_commit VARCHAR2(1) := 'F';
v_return_status VARCHAR2(1);
v_init_msg_list VARCHAR2(1) := 'F';
v_msg_count NUMBER;
v_msg_index_out NUMBER;
v_msg_data VARCHAR2(2000);
v_data VARCHAR2(2000);
v_workflow_started VARCHAR2(1) := 'Y';
v_pm_product_code VARCHAR2(10);
---variables for catching errors---
v_error_flag number:=0;
-- Predefined Composite data types
v_project_in PA_PROJECT_PUB.PROJECT_IN_REC_TYPE;
v_project_out PA_PROJECT_PUB.PROJECT_OUT_REC_TYPE;
v_key_members PA_PROJECT_PUB.PROJECT_ROLE_TBL_TYPE;
v_class_categories PA_PROJECT_PUB.CLASS_CATEGORY_TBL_TYPE;
v_tasks_in_rec PA_PROJECT_PUB.TASK_IN_REC_TYPE;
v_tasks_in PA_PROJECT_PUB.TASK_IN_TBL_TYPE;
v_tasks_out_rec PA_PROJECT_PUB.TASK_OUT_REC_TYPE;
v_tasks_out PA_PROJECT_PUB.TASK_OUT_TBL_TYPE;
v_CREATED_FROM_PROJECT_ID varchar2(20);
v_CARRYING_OUT_ORGANIZATION_ID varchar2(20);
v_person_id NUMBER;
v_project_role_type VARCHAR2(20);
API_ERROR EXCEPTION;
v_a NUMBER;
cursor for project in data
CURSOR cur_project_in_data IS SELECT * FROM XXPA_PROJECT_IN_STG;
cursor for task data
CURSOR cur_task_in_data IS SELECT * FROM XXPA_TASK_IN_STG;
------------------------Cursors used for validations----------------------------------
cursor for product code used for validation
cursor cprc is select distinct PROJECT_RELATIONSHIP_CODE from PA_PROJECT_CUSTOMERS;
cursor for distribution rule-
cursor cdr is select DISTRIBUTION_RULE from PA_DISTRIBUTION_RULES;
cursor for project status code
cursor cpsc is SELECT PROJECT_STATUS_CODE, PROJECT_STATUS_NAME FROM PA_PROJECT_STATUSES WHERE STATUS_TYPE = 'PROJECT';
cursor for template/created from project id
cursor ccpid is select project_id from pa_projects where template_flag='Y';
BEGIN
select user_id, responsibility_id into v_user_id, v_responsibility_id
from PA_USER_RESP_V
where user_name like 'amit_kumar%'
and responsibility_name like'PA SupervisorS';
-- --Fnd_global.apps_initialize(user_id,resp_id, resp_appl_id);
-- Fnd_global.apps_initialize(v_user_id,v_responsibility_id,275);
-- -------calling global parameters---
pa_interface_utils_pub.set_global_info
p_api_version_number =>v_api_version_number,
p_responsibility_id =>v_responsibility_id,
p_user_id =>v_user_id,
p_msg_count =>v_msg_count,
p_msg_data =>v_msg_data,
p_return_status =>v_return_status
dbms_output.put_line ('Set Global status ->' || v_return_status);
----Cursor for PRODUCT RELATED DATA-----------
FOR REC IN cur_project_in_data LOOP
-----PASSING VALUES TO THE COMPOSITE DATA TYPE(PROJECT_IN_REC_TYPE)-------
----retrieving product code-----
select lookup_code into v_pm_product_code
from pa_lookups
where lookup_type = 'PM_PRODUCT_CODE'
and meaning = 'Oracle Project Manufacturing';
-----retrieving and validating created from project id----
BEGIN
select project_id
into v_CREATED_FROM_PROJECT_ID
from pa_projects_all
where name=rec.created_from_project_name;
EXCEPTION
when others then
O_Retcode := '1';
O_Errbuf :='Incorrent CREATED_FROM_PROJECT_NAME';
Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
UPDATE XXPA.XXPA_PROJECT_IN_STG
SET ERROR_FLAG ='1' ,last_updation_date='sysdate' where created_from_project_name = rec.CREATED_FROM_PROJECT_NAME;
END;
-----retrieving & validating carrying out organization id-----
BEGIN
select distinct(CARRYING_OUT_ORGANIZATION_ID)
into v_CARRYING_OUT_ORGANIZATION_ID
from pa_projects_prm_v
where CARRYING_OUT_ORGANIZATION_NAME=rec.carrying_out_organization_name;
EXCEPTION
when others then
O_Retcode := '1';
O_Errbuf :='Incorrent Carrying Out Organization name';
Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
UPDATE XXPA.XXPA_PROJECT_IN_STG
SET ERROR_FLAG ='1' ,last_updation_date='sysdate' where carrying_out_organization_name = rec.carrying_out_organization_name;
END ;
v_project_in.pm_project_reference := rec.segment1;
v_project_in.project_name := rec.PROJECT_NAME;
v_project_in.created_from_project_id := v_CREATED_FROM_PROJECT_ID;
v_project_in.carrying_out_organization_id := v_CARRYING_OUT_ORGANIZATION_ID;
v_project_in.project_status_code := rec.PROJECT_STATUS_CODE;
v_project_in.description := rec.PROJECT_DESCRIPTION;
v_project_in.start_date := rec.PROJECT_START_DATE;
v_project_in.completion_date := rec.PROJECT_COMPLETION_DATE;
v_project_in.distribution_rule := rec.DISTRIBUTION_RULE;
v_project_in.project_relationship_code := rec.PROJECT_RELATIONSHIP_CODE;
-------------------------Validation of incoming project data--------------------------------
v_error_flag := 1;
project relationship code validation
BEGIN
for prc in cprc
loop
if (rec.PROJECT_RELATIONSHIP_CODE=prc.PROJECT_RELATIONSHIP_CODE) or (rec.PROJECT_RELATIONSHIP_CODE is null)--can be overridden from template
then
v_error_flag :=0;
else null;
end if;
end loop;
END;
project distribution rule validation
BEGIN
for dr in cdr
loop
if (rec.DISTRIBUTION_RULE=dr.DISTRIBUTION_RULE) or (rec.DISTRIBUTION_RULE is null) null since the value can be taken from template too
then
v_error_flag :=0;
else null;
end if;
end loop;
END;
project status code validation
BEGIN
for sc in cpsc
loop
if (rec.PROJECT_STATUS_CODE=sc.PROJECT_STATUS_CODE) or (rec.PROJECT_STATUS_CODE is null) null since the value can be taken from template too
then
v_error_flag :=0;
else null;
end if;
end loop;
END;
dbms_output.put_line ('Error at PROJECT_STATUS_CODE>' ||v_error_flag);
validation logic for project start date
BEGIN
if TRUNC(rec.PROJECT_START_DATE) >= TRUNC(rec.PROJECT_COMPLETION_DATE)
THEN
v_error_flag := 1;
O_Retcode := '1';
O_Errbuf :='Project start date cannnot be greater than completion date';
Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
END IF;
END;
validation logic for project completion date
BEGIN
if (TRUNC(rec.PROJECT_COMPLETION_DATE)<=TRUNC(rec.PROJECT_START_DATE))
then
if ( rec.PROJECT_STATUS_CODE='CLOSED' and rec.PROJECT_COMPLETION_DATE>sysdate)
THEN
v_error_flag := 1;
O_Retcode := '1';
O_Errbuf :='completion date cannot be greater than sysdate for closed projects';
Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
END IF;
v_error_flag := 1;
O_Retcode := '1';
O_Errbuf :='Project closed date cannot be less than start date';
end if;
END;
--------Update staging table for the error records--------
BEGIN
if v_error_flag =1
then
O_Retcode := '1';
O_Errbuf :='Incorrect project relationship code';
Fnd_File.Put_Line (Fnd_File.LOG, O_Errbuf);
UPDATE XXPA.XXPA_PROJECT_IN_STG
SET ERROR_FLAG ='1' ,last_updation_date='sysdate' where PROJECT_RELATIONSHIP_CODE = rec.PROJECT_RELATIONSHIP_CODE;
end if;
END;
-----------------------End of validation of incoming project data----------------------------------
---------------Project Task DATA-----------------
v_a:=0;
FOR tsk IN cur_task_in_data LOOP
v_tasks_in_rec.pm_task_reference :=tsk.task_reference ;
v_tasks_in_rec.task_name :=tsk.task_name;
v_tasks_in_rec.pm_parent_task_reference :=tsk.parent_task_reference ;
v_tasks_in_rec.task_start_date :=tsk.task_start_date ;
v_tasks_in_rec.task_completion_date :=tsk.task_completion_date ;
v_tasks_in(v_a) := v_tasks_in_rec;
v_a:=v_a+1;
end loop;
---------------end of task details------------------
--INIT_CREATE_PROJECT
pa_project_pub.init_project;
---------------------CREATE_PROJECT--------------------------
pa_project_pub.create_project(
p_api_version_number=> v_api_version_number,
p_commit => v_commit,
p_init_msg_list => v_init_msg_list,
p_msg_count => v_msg_count,
p_msg_data => v_msg_data,
p_return_status => v_return_status,
p_workflow_started => v_workflow_started,
p_pm_product_code => v_pm_product_code,
p_project_in => v_project_in,
p_project_out => v_project_out,
p_key_members => v_key_members,
p_class_categories => v_class_categories,
p_tasks_in => v_tasks_in,
p_tasks_out => v_tasks_out);
if v_return_status = 'S'
then
UPDATE XXPA.XXPA_PROJECT_IN_STG
SET INTERFACE_STATUS ='Success' where segment1 = v_project_out.pa_project_number; ---P->pending & S-> Success
dbms_output.put_line('New Project Id: ' || v_project_out.pa_project_id);
dbms_output.put_line('New Project Number: ' || v_project_out.pa_project_number);
else
UPDATE XXPA.XXPA_PROJECT_IN_STG
SET INTERFACE_STATUS ='Pending' where segment1 = v_project_out.pa_project_number;
raise API_ERROR;
end if;
END LOOP;
Commit;
------Handling Exception--------
EXCEPTION
WHEN api_error THEN
dbms_output.put_line('An error occured during project creation');
IF (v_msg_count > 0 ) THEN
FOR i IN 1..v_msg_count LOOP
apps.PA_INTERFACE_UTILS_PUB.get_messages(
p_msg_count => v_msg_count,
p_encoded => 'F',
p_msg_index => i,
p_msg_data => v_msg_data,
p_data => v_data,
p_msg_index_out => v_msg_index_out);
dbms_output.put_line('Error message v_data ->'||v_data);
dbms_output.put_line('Error message v_msg_data ->'||v_msg_data);
dbms_output.put_line('Error message v_msg_index_out ->'||v_msg_index_out);
dbms_output.put_line('Error message p_msg_index ->'||i);
APPS.fnd_file.put_line(APPS.FND_FILE.LOG,v_data);
END LOOP;
END IF;
WHEN OTHERS THEN
dbms_output.put_line('An error occured during conversion, SQLCODE ->'|| SQLERRM);
IF (v_msg_count >=1 ) THEN
FOR i IN 1..v_msg_count LOOP
PA_INTERFACE_UTILS_PUB.get_messages(
p_msg_count => v_msg_count,
p_msg_index => i,
p_encoded => 'F',
p_msg_data => v_msg_data,
p_data => v_data,
p_msg_index_out => v_msg_index_out);
dbms_output.put_line('Error message ->'||v_data);
APPS.fnd_file.put_line(APPS.FND_FILE.LOG,v_data);
END LOOP;
END IF;
end; --end procedure
END xxpa_proj_conv_pkg;
* Please tell me how to assign project specific task with the newly created projects??? *
Also please tell me how to assign multiple * Project_Relationship_Code * (ex: END CLIENT, GENERAL CONTRACTOR, PRIMARY) for a particular project during project creation?Are you not storing the project number in the staging table designed for storing the task data? You can use create_project API to create the project and tasks at the same time with one single call. You may want to try that option
-
How to terminate a java thread from c++ code?
Hi,
I made a screensaver which loads a jvm, forks a thread running a java class, wait until user's action(i.e. mouse move/click keyboard input), then terminate the java thread.
However, I met a problem, How to terminate a running java thread from c++ code?
Here is my code, but it does not work: (even after the terminate is called, jvm throws an error)
JNIEnv* env;
JavaVM* jvm;
HANDLE hThread; //handle for the startThread
unsigned __stdcall startThread(void *arg)
jclass cls;
jmethodID mainId;
jint res;
int threadNum = (int)arg;
res = jvm->AttachCurrentThread((void**)&env, NULL);
cls = env->FindClass( MAIN_CLASS);
mainId = env->GetStaticMethodID(cls, "main", "([Ljava/lang/String;)V");
// setup the parameters to pass to main()
jstring str;
jobjectArray args;
int i=0;
args = env->NewObjectArray(1, env->FindClass("java/lang/String"), 0); //only one input parameters
str = env->NewStringUTF("localhost");
env->SetObjectArrayElement(args, 0, str);
env->CallStaticVoidMethod(cls, mainId, args); // call main()
if (env->ExceptionOccurred()) {
env->ExceptionDescribe();
return TRUE;
Here is the main method:
First create the jvm and load the thread. then tries to terminate the thread, but failed here
switch (msg)
{ case WM_CREATE:
JavaVMOption options[NUMBEROFOPTIONS];
JavaVMInitArgs vmargs;
jint rc;
vmargs.version = JNI_VERSION_1_4; /* version 1.4 */
vmargs.options = options;
vmargs.nOptions = NUMBEROFOPTIONS;
vmargs.ignoreUnrecognized = JNI_FALSE;
rc=JNI_CreateJavaVM( &jvm, (void **)&env, &vmargs ); /* create JVM */
/* We pass the thread number as the argument to the invoked thread */
unsigned int threadId = -1;
// to initialize a thread-safe C runtime library
hThread = (HANDLE)_beginthreadex(NULL, 0, &startThread, NULL, 0, &threadId );
} break;
case (WM_DESTROY):
CloseHandle( hThread );
jvm->DestroyJavaVM(); /* kill JVM */
Debug("Destroy Java Virtual Machine\n");
}break;
Note, after the thread "startThread" runs, it has an infinite loop and will not terminate, until the user clicks to terminate.(I didn't call jvm->DetachCurrentThread();_endthreadex(0); in the "startThread" because the java thread will not terminate by itself)
Thus, the only way to terminate the thread is to call closehandle(hthread) in the main thread, which may cause jvm to throw an error.
Do you know how to terminate a java thread safely???
Thanks a lotAssuming that your java thread is in a loop of some kind. Such as
int i=1; /* I tried using a boolean, I just could not get my C++ env, to change this value. So i decided to use an int */
run {
while(i)
isdfjsdfj
void seti()
i=0
So, B/4, i call destroyVM in my C++ code, i call this seti(). so the loop terminates, therefore my thread finishes executing and ends.
Hope this helps
tola. -
How to stop a thread in java 5 for a real-time system??
Hi,
In Java 5, thread.stop is deprecated. We need to modify some variable to indicate that the target thread should stop running. "The target thread should check this variable regularly........"
We are currently developing a simple real-time operating system using the basic features of java. It is running on top of SunSPOT (JAVA5). My question is I need to stop a thread in a scheduler loop of a real-time operating system. We cannot check it regularly. Otherwise it is not a real-time operating system.Is there anyway else to do this?
Thanks,
QingThat's rather hard to answer. You say you are writing in Java, but you're writing an OS. BUt what's executing the Java - you need a VM of some form. Is that a real-time or non-real-time VM? How it does things ultimately controls how effectively you can do what you are trying to do.
The simple answer is that Thread.stop() is deprecated and that it will not stop a thread in all situations anyway - eg trying to acquire a monitor lock. But all Thread.stop does is make an exception pending on the thread, and as the thread executes it polls to see if there is an exception pending. When this happens depends on the VM: it might be after every bytecode; it might be when the thread transitions states (eg thread-in-java, thread-in-vm, thread-in-native) - it all depends. But it is polling - just the same as checking that variable - it's just implicit in the VM rather than explicitly in your code.**
The RTSJ adds a new form of asynchronous termination requests through the AsynchronouslyInterruptedException (AIE). But it only affects code that explicitly declares that it expects AIE to occur, and there are also deferred sections where the AIE will remain pending. Writing code that can handle AIE is very difficult because the normal Java rules are "bent" and finally blocks do not get executed inside AIE-enabled code.
So as I said this is very hard to answer, it really depends what exactly you are running on and what you are trying to achieve.
** Note: some people used bytecode rewriting tools to add this kind of polling as a post-processing step. Perhaps that is something you might be able to do too.
David Holmes
Maybe you are looking for
-
Hi, I have the below query select distinct first_value(column_name) over (partition by table_name order by decode(column_name,'REP','1', 'END','2','3')),table_name from all_tab_columns where owner='ORCL' can someone plz tell me how the order by will
-
Errors of BEA-101147 during shutdown if a managed server form a cluster
Hi there, We have a cluster with two machines running one managed server on each. Acces to these servers is made with mod_wl.so on Apache. The problem we´re having is: when I shutdown one of the managed servers it seems to undeploy the web
-
Creating an app for different screen resolutions/sizes
Hi I'm currently in the process of learning application development for the iPhone and could do with some help on how to cater for retina and non-retina screens. I want to create image assets for each screen type. What the best way to go about detect
-
Belated costs during a make-to-order/sales order controlling process
Hello Experts, We implemented a make-to-order process where we collect actual costs of a repackaging process. The cost object of that process order is the sales order item (VBP, Vertriebsbelegposition). So far that cost collection works absolutely fi
-
Using the values in the Nested table container
Hi All, I have a requirement where the values present in the nested table container should be used in the item text(send mail step). I have tried using like &req.itemtab.att [ 10 ]& as i want to display 10 element in the table att which is nested in