zl程序教程

您现在的位置是:首页 >  其它

当前栏目

乱七八糟的调用,asynccallback,delegate,thread

调用 thread Delegate
2023-09-27 14:25:00 时间
private void button2_Click(object sender, System.EventArgs e)...{    AsyncCallback m_test=new AsyncCallback(TestSleep);    AsyncCallback m_wakeup=new AsyncCallback(WakeUp);    ar=m_test.BeginInvo
private void button2_Click(object sender, System.EventArgs e)
...{

    AsyncCallback m_test=new AsyncCallback(TestSleep);
    AsyncCallback m_wakeup=new AsyncCallback(WakeUp);
    ar=m_test.BeginInvoke(null,m_wakeup,null);

    System.Threading.ThreadStart m_ts=new System.Threading.ThreadStart(Monitor);
    System.Threading.Thread m_thread=new System.Threading.Thread(m_ts);
    m_thread.Start();

    MyDelegatetest m_cxydele=new MyDelegatetest(ShowName);
    m_cxydele.BeginInvoke(12,m_wakeup,null);

 
    MessageBox.Show("I was clicked");


}
IAsyncResult ar;

public delegate  void MyDelegatetest(int name);

private void TestSleep(IAsyncResult ar)
...{
    Debug.WriteLine("调用开始了");
    System.Threading.Thread.Sleep(5000);
    MessageBox.Show("我醒了");
    Debug.WriteLine("调用结束了");
}

private void WakeUp(IAsyncResult ar)
...{
    MessageBox.Show("我醒了,要吃东西");
}

private void Monitor()
...{
    while(!ar.IsCompleted)
    ...{  
    }

    MessageBox.Show("对方已经执行完了,我们开始干活吧");
}

private void ShowName(int name)
...{
    MessageBox.Show(name.ToString());
}
【高并发】又一个朋友面试栽在了Thread类的stop()方法和interrupt()方法上! 新一轮的面试已经开始了,可能是疫情的原因吧,很多童鞋纷纷留言说今年的面试题难度又提高了,尤其是对并发编程的知识。我细想了下,也许有那么点疫情的原因吧,但无论面试的套路怎么变,只要掌握了核心知识和底层原理,吊打面试官应该不难吧。玩笑归玩笑,学习知识并不只是为了应付面试,更应该将这些知识运用到实际的工作中。
为什么 wait,notify,notifyAll 在 Object 类定义而不是 Thread 类? 一个较难回答的 Java 问题, Java 编程语言又不是你设计的,你如何回答这个问题呢?需要对 Java 编程的常识进行深入了解才行。 这个问题的好在它能反映面试者是否对 wait - notify 机制有没有了解, 以及他相关知识的理解是否明确。就像为什么 Java 中不支持多继承或者为什么 String 在 Java 中是 final 的问题一样,这个问题也可能有多个答案。
sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态,请参考第66题中的线程状态转换图)。