How to fund a bidirectional payment channel? Assuming two users want to create a bidirectional channel between themselves such that user_1 wants to pay 2 BTC to user_2 at the end and he divides this amount into 10 micro-payment (each micro-payment = 0.2 BTC). And user_2 wants to pay 1 BTC to user_1 at the end and he divides this amount into 10 micro-payment (each micro-payment = 0.1 BTC). 

So, the capacity of this channel must be 2 BTC + 1 BTC = 3 BTC. Logically, 2 BTC of channel's capacity must be provided by user_1 and 1 BTC of channel's balance must be provided by users_2. 

However, since they create together only one channel between themselves, how can they manage capacity of this channel? (I think a payment channel has a single address with a single capacity, but here since the channel is bidirectional, its capacity must be funded by two users, so how can they establish this channel together with 3 BTC ? How can they share 3 BTC between themselves ?).

If you think that question is not clear enough, please let me know.
In your scenario you would like to create a payment channel with user 1 and 2 contributing (on-chain) and receiving (off-chain, in the payment channel) the following amounts:


User 1: 2 btc
User 2: 1 btc


To open and fund the channel accordingly, you therefore create the following funding transaction:


Input 0: 2 btc from user 1
Input 1: 1 btc from user 2
Output 0: 3 btc to 2-of-2-multisig(user 1 + user 2)


Before this funding transaction is broadcast, we also need a first commitment transaction, which captures the initial channel balance state you described:


Input 0: Spends 2-of-2 multisig output of funding channel.
Output 0: 2 btc spendable by user 1
Output 1: 1 btc spendable by user 2


(Each party receives an asymmetrically designed commitment transaction, but we will omit the differences for simplicity sake.)

Once both funding and the initial commitment transactions are signed, the funding transaction must be broadcast, to "secure" or "commit" the funds to the channel. The commitment transaction is only broadcast to close the channel and deliver the most recent channel state to the Bitcoin blockchain.

To answer your question, we now have an open channel, which is both funded by the two peers and reflects an initial channel balance according to the funding contributions (2:1 btc), which can be updated by revoking/updating the commitment transaction.