????????????????

????????????????????????????????? Theron ?????????????????????????????????????????????????????????? Theron ??ν?????????

#include <stdio.h>

#include <Theron/Framework.h>
#include <Theron/Actor.h>

const int PRODUCE_NUM = 5;

class Producer : public Theron::Actor
{
public:
    inline Producer(): m_item(0)
    {
        RegisterHandler(this?? &Producer::Produce);
    }

private:
    // ?????????????
    inline void Produce(const int& /* message */?? const Theron::Address from)
    {
        int count(PRODUCE_NUM);

        while (count--)
        {
            // ???????????????
#ifdef _MSC_VER
            Sleep(1000);
#else
            sleep(1);
#endif

            printf("Produce item %d "?? m_item);
            if (!Send(m_item?? from))
                printf("Failed to send message! ");
            ++m_item;
        }
    }

    // ???????????????
    int m_item;
};

class Consumer : public Theron::Actor
{
public:
    inline Consumer(): m_consumeNum(PRODUCE_NUM)
    {
        RegisterHandler(this?? &Consumer::Consume);
    }

private:
    inline void Consume(const int& item?? const Theron::Address from)
    {
        // ??????????????
#ifdef _MSC_VER
        Sleep(2000);
#else
        sleep(2);
#endif

        printf("Consume item %d "?? item);
        --m_consumeNum;

        // ???????????????????????????????
        if (m_consumeNum == 0)
        {
            if (!Send(0?? from))
                printf("Failed to send message! ");
            m_consumeNum = PRODUCE_NUM;
        }
    }

    int m_consumeNum;
};

int main()
{
    Theron::Framework framework;

    Theron::ActorRef producer(framework.CreateActor<Producer>());
    Theron::ActorRef consumer(framework.CreateActor<Consumer>());

    if (!framework.Send(0?? consumer.GetAddress()?? producer.GetAddress()))
        printf("Failed to send message! ");

    // ??????? Sleep ??????????????
    // ?????????????????????????
    // ???????д?У??????????? Receiver
#ifdef _MSC_VER
    Sleep(100000);
#else
    sleep(100);
#endif

    return 0;
}

????????????????????????????????????????н??У???????б?д?????????????й?????????棬???д????????????????ж??????????????

????????????

???????????????????? Theron ?в?????????????? Actor???????????????????У??????迪????????Actor ???????????????????????????????????ζ???????????????????? Actor ???в??????????????????????????????????????

????Actor ??????????н?? Actor????????????????????? Theron ??????????????? Actor ?????????? Actor ??????????????????? Actor ?????? Object ???????????????????????磬??????????????????????????Щ??????????????飬?????????? Actor?????????????? Object ??????????? Actor ????????????????

????Theron ??δ??

????Theron ???????????????????????ù????????????? Actor ???????? Actor ????????????????????????????á????????????????? Theron ????????????????????????? Theron ???????????Щδ?????????????Щ????????????????????????????? Theron ?????????Щ???????? Theron ??????????????????????????Щ?????????磬??????????????? Remote Actors???????? Theron δ????Σ?Theron ??? Actor ???????????????????????????????????