Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #16761 > unrolled thread

Accessing a thread

Started by"Dirk Bruere at NeoPax" <dirk.bruere.at.neopax@1:261/38.remove-dpk-this>
First post2012-07-31 18:02 +0000
Last post2012-08-03 10:07 -0700
Articles 6 — 5 participants

Back to article view | Back to comp.lang.java.programmer


Contents

  Accessing a thread "Dirk Bruere at NeoPax" <dirk.bruere.at.neopax@1:261/38.remove-dpk-this> - 2012-07-31 18:02 +0000
    Re: Accessing a thread "Eric Sosman" <eric.sosman@1:261/38.remove-dpk-this> - 2012-07-31 18:02 +0000
      Re: Accessing a thread "Dirk Bruere at NeoPax" <dirk.bruere.at.neopax@1:261/38.remove-dpk-this> - 2012-07-31 18:02 +0000
    Re: Accessing a thread "Roedy Green" <roedy.green@1:261/38.remove-x1c-this> - 2012-07-31 20:07 +0000
      Re: Accessing a thread Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2012-08-03 16:52 +0100
        Re: Accessing a thread markspace <-@.> - 2012-08-03 10:07 -0700

#16761 — Accessing a thread

From"Dirk Bruere at NeoPax" <dirk.bruere.at.neopax@1:261/38.remove-dpk-this>
Date2012-07-31 18:02 +0000
SubjectAccessing a thread
Message-ID<50181D60.55729.calajapr@time.synchro.net>
From: "Dirk Bruere at NeoPax" <dirk.bruere.at.neopax@1:261/38.remove-rf4-this>

From: Dirk Bruere at NeoPax <dirk.bruere@gmail.com>

File1

public class controller extends Activity {


        /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

         final LanSendThread lanSendThread = new LanSendThread();
         lanSendThread.start();
...}

__________

File2

public class LanSendThread extends Thread{
        public static Handler lanSendHandler;

     @Override
     public void run(){
            Looper.prepare();

            lanSendHandler = new Handler() {
//stuff}

___________

How do I access the thread lanSendThread from another class in another file?




--
Dirk

Full Spectrum Praxis : ZERO STATE : http://zerostate.net

-+- BBBS/Li6 v4.10 Dada-1
 + Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

--- BBBS/Li6 v4.10 Dada-1
 * Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

[toc] | [next] | [standalone]


#16767

From"Eric Sosman" <eric.sosman@1:261/38.remove-dpk-this>
Date2012-07-31 18:02 +0000
Message-ID<50181D60.55735.calajapr@time.synchro.net>
In reply to#16761
  To: Dirk Bruere at NeoPax
From: "Eric Sosman" <eric.sosman@1:261/38.remove-rf4-this>

  To: Dirk Bruere at NeoPax
From: Eric Sosman <esosman@ieee-dot-org.invalid>

On 7/30/2012 5:54 AM, Dirk Bruere at NeoPax wrote:
> File1
>
> public class controller extends Activity {
>
>
>      /** Called when the activity is first created. */
>      @Override
>      public void onCreate(Bundle savedInstanceState) {
>          super.onCreate(savedInstanceState);
>          setContentView(R.layout.main);
>
>          final LanSendThread lanSendThread = new LanSendThread();
>          lanSendThread.start();
> ...}
>
> __________
>
> File2
>
> public class LanSendThread extends Thread{
>      public static Handler lanSendHandler;
>
>      @Override
>      public void run(){
>             Looper.prepare();
>
>             lanSendHandler = new Handler() {
> //stuff}
>
> ___________
>
> How do I access the thread lanSendThread from another class in another
> file?

     The same way you'd access it if it were an ArrayList or
a JButton or a File: You save the reference somewhere and dish it out to 
interested parties.  There must be two or three jillion ways to do this; a few 
of them are

     - Make `lanSendThread' a public member of the controller
       class (poor choice of name, by the way).  You may or may
       not want to make that member `final'.

     - Make `lanSendThread' a private member of the controller
       class, and write a public getThread() method to return it.

     - Stash the value of `lanSendThread' in a Map or other data
       structure, and "publicize" the data structure and/or
       accessors for it.

--
Eric Sosman
esosman@ieee-dot-org.invalid

-+- BBBS/Li6 v4.10 Dada-1
 + Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

--- BBBS/Li6 v4.10 Dada-1
 * Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

[toc] | [prev] | [next] | [standalone]


#16779

From"Dirk Bruere at NeoPax" <dirk.bruere.at.neopax@1:261/38.remove-dpk-this>
Date2012-07-31 18:02 +0000
Message-ID<50181D62.55747.calajapr@time.synchro.net>
In reply to#16767
  To: Eric Sosman
From: Dirk Bruere at NeoPax <dirk.bruere@gmail.com>

On 30/07/2012 20:00, Eric Sosman wrote:
>    To: Dirk Bruere at NeoPax
> From: Eric Sosman<esosman@ieee-dot-org.invalid>
>
> On 7/30/2012 5:54 AM, Dirk Bruere at NeoPax wrote:
>> File1
>>
>> public class controller extends Activity {
>>
>>
>>       /** Called when the activity is first created. */
>>       @Override
>>       public void onCreate(Bundle savedInstanceState) {
>>           super.onCreate(savedInstanceState);
>>           setContentView(R.layout.main);
>>
>>           final LanSendThread lanSendThread = new LanSendThread();
>>           lanSendThread.start();
>> ...}
>>
>> __________
>>
>> File2
>>
>> public class LanSendThread extends Thread{
>>       public static Handler lanSendHandler;
>>
>>       @Override
>>       public void run(){
>>              Looper.prepare();
>>
>>              lanSendHandler = new Handler() {
>> //stuff}
>>
>> ___________
>>
>> How do I access the thread lanSendThread from another class in another
>> file?
>
>       The same way you'd access it if it were an ArrayList or
> a JButton or a File: You save the reference somewhere and dish it out to
> interested parties.  There must be two or three jillion ways to do this; a
few
> of them are
>
>       - Make `lanSendThread' a public member of the controller
>         class (poor choice of name, by the way).  You may or may
>         not want to make that member `final'.
>
>       - Make `lanSendThread' a private member of the controller
>         class, and write a public getThread() method to return it.
>
>       - Stash the value of `lanSendThread' in a Map or other data
>         structure, and "publicize" the data structure and/or
>         accessors for it.
>
> --
> Eric Sosman
> esosman@ieee-dot-org.invalid
>
> --- BBBS/Li6 v4.10 Dada-1
>   * Origin: Prism bbs (1:261/38)
> --- Synchronet 3.16a-Win32 NewsLink 1.98
> Time Warp of the Future BBS - telnet://time.synchro.net:24

Thanks. It's obvious now!

--
Dirk

Full Spectrum Praxis : ZERO STATE : http://zerostate.net

--- BBBS/Li6 v4.10 Dada-1
 * Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

[toc] | [prev] | [next] | [standalone]


#16882

From"Roedy Green" <roedy.green@1:261/38.remove-x1c-this>
Date2012-07-31 20:07 +0000
Message-ID<50182C82.55850.calajapr@time.synchro.net>
In reply to#16761
  To: Dirk Bruere at NeoPax
From: "Roedy Green" <roedy.green@1:261/38.remove-dpk-this>

  To: Dirk Bruere at NeoPax
From: Roedy Green <see_website@mindprod.com.invalid>

On Mon, 30 Jul 2012 10:54:25 +0100, Dirk Bruere at NeoPax
<dirk.bruere@gmail.com> wrote, quoted or indirectly quoted someone who
said :

>How do I access the thread lanSendThread from another class in another file?


// execute InParallel.run()
// in parallel to this thread on a new thread.
Thread t = new Thread ( new InParallel() );

// Note we call t.start(), not t.run()
// t.run() would just call run in the ordinary way.

// Get reference to the thread running this
// code right now.
Thread runningNow = Thread.currentThread();

Keep in mind a thread is busy running its own code. Pretty well anything you 
run on that thread is going to be highly disruptive.
--
Roedy Green Canadian Mind Products
http://mindprod.com
The greatest shortcoming of the human race is our inability to understand the 
exponential function.
 ~ Dr. Albert A. Bartlett (born: 1923-03-21 age: 89)
http://www.youtube.com/watch?v=F-QA2rkpBSY

-+- BBBS/Li6 v4.10 Dada-1
 + Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

--- BBBS/Li6 v4.10 Dada-1
 * Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

[toc] | [prev] | [next] | [standalone]


#17037

FromDirk Bruere at NeoPax <dirk.bruere@gmail.com>
Date2012-08-03 16:52 +0100
Message-ID<a82ae4F5osU1@mid.individual.net>
In reply to#16882
On 31/07/2012 21:07, Roedy Green wrote:
>    To: Dirk Bruere at NeoPax
> From: "Roedy Green"<roedy.green@1:261/38.remove-dpk-this>
>
>    To: Dirk Bruere at NeoPax
> From: Roedy Green<see_website@mindprod.com.invalid>
>
> On Mon, 30 Jul 2012 10:54:25 +0100, Dirk Bruere at NeoPax
> <dirk.bruere@gmail.com>  wrote, quoted or indirectly quoted someone who
> said :
>
>> How do I access the thread lanSendThread from another class in another file?
>
>
> // execute InParallel.run()
> // in parallel to this thread on a new thread.
> Thread t = new Thread ( new InParallel() );
>
> // Note we call t.start(), not t.run()
> // t.run() would just call run in the ordinary way.
>
> // Get reference to the thread running this
> // code right now.
> Thread runningNow = Thread.currentThread();

I still don't see how this solves my problem.
In "main" (controller) I have:

public static Thread txToLanThreadRef;

TxToLanThread txToLanThread = new TxToLanThread();
txToLanThread.start();
txToLanThreadRef = txToLanThread.runningNow;

However, when I try to access it elsewhere, this does not work

controller.txToLanThreadRef.

I need to access the handler in the thread so I can send it a message

-- 
Dirk

Full Spectrum Praxis : ZERO STATE : http://zerostate.net

[toc] | [prev] | [next] | [standalone]


#17038

Frommarkspace <-@.>
Date2012-08-03 10:07 -0700
Message-ID<jvh0gf$l27$1@dont-email.me>
In reply to#17037
On 8/3/2012 8:52 AM, Dirk Bruere at NeoPax wrote:

> public static Thread txToLanThreadRef;


Static variables like this are not considered best practice.  Consider 
some alternatives, including factories, a context object, or some sort 
of generic message system.


> However, when I try to access it elsewhere, this does not work
>
> controller.txToLanThreadRef.


"Does not work" is a little unspecific.  What error/problem do you get? 
  Can you make a short, complete, compilable example that duplicates the 
problem?

It should work, must work, even, according to the Java programming 
language.  If there's an issue, it must be with the way you are using 
it.  Please show us.



[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.java.programmer


csiph-web