【问题标题】:How to handle signals/events in Java [closed]如何在 Java 中处理信号/事件 [关闭]
【发布时间】:2012-06-21 06:39:29
【问题描述】:

谁能告诉我在 Java 中是如何处理信号的?我有一种情况,我需要从 application main () 向线程发送事件/信号。

【问题讨论】:

    标签: java android signal-handling


    【解决方案1】:

    在 android 上,您可以使用 Handler 类跨线程发送消息。 Here is the Handler class description code sample

    【讨论】:

      【解决方案2】:

      在 Java 中,通知通常作为事件传递,这意味着某些操作已经发生,例如按钮已被单击,或者作为异常传递,这意味着出现问题,例如尝试访问一个无效位置数组。

      另一种方法是使用volatile 变量作为标志。

      一种更与语言无关的方法是使用标志,可能是某种信号量(尽管这些通常更多用于管理竞争线程之间的访问)。

      我想你也可以使用套接字,但这些通常用于进程间通信。

      【讨论】:

        【解决方案3】:

        我会试着解释一下……

        活动: When some action take place.

        事件处理: To do certain actions on the basis of the Event.

        Eg: 
        
           Button - Button is an Event Source
        
           Action - Button Pressed
        
           Pressing of button generates an Event, which is needed to be Handled..
        

        例外:When Something unexpectedly take place.

        Throwable --> Exception --> IOException & InterruptedException --> Checked and UnCheckedExceptions

        Eg: 
              Making a Socket Connection to the Server 
        
        If the connection to the Server fails it leads to 
        UnknowHostException which in need to be Handled..
        this is called Exception Handling..
        
            We handle the exception using try/catch blocks
        

        【讨论】:

        • 太棒了!!!我想知道在与两个线程通信时如何使用相同的?假设我从一个线程读取了一些数据,然后通知写线程做一些工作。我浏览了一些博客,建议将信号量用于等待和通知调用,这也很有意义,因为两个线程之间的数据需要同步。是否有任何其他我们可以引发的不需要同步的事件?只是为了通知其他线程?
        • 如果你不想使用同步,但是想使用wait-notify机制,那就去java.util.concurrent包里的ReerrantLock(),使用lock()-unlock(),连同条件接口,您可以在其中使用等待信号机制,还有一件事......如果你觉得这真的很棒,为什么我的观点在这个答案中仍然是 0......哈哈哈......!!跨度>
        猜你喜欢
        • 2010-10-12
        • 1970-01-01
        • 2010-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多